3
我有Message.rb具有列A,B,和C.唯一索引允許空值在導軌
我添加一個唯一索引消息像這樣:
add_index :messages, [:a, :b, :c], unique: true, name: 'mm_uniqueness'
然而,我希望列A能夠具有空值而不觸發唯一性約束。
所以:
original a=1, b=2, c=3
second a=1, b=2, c=3 (not unique)
original a=null, b=2, c=3
second a=null, b=2, c=3 (unique)
怎麼做呢?
原來你甚至不需要它。默認情況下,NULL不計入唯一約束。 –
無論如何,'a!= null'總是計算爲NULL,因爲涉及NULL的所有SQL表達式都是NULL。一個更正確的(儘管正如@MatthewBerman所指出的那樣)將是使用'where:'一個不是空'的 – radiospiel