唯一索引允许rails中的空值

时间:2015-05-30 09:10:02

标签: ruby-on-rails postgresql

我的Message.rb包含A,B和C列。

我为Message添加了一个唯一索引:

add_index :messages, [:a, :b, :c], unique: true, name: 'mm_uniqueness'

但是,我希望列A能够在不触发唯一性约束的情况下获得null值。

所以:

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)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试创建部分索引:

add_index :messages, [:a, :b, :c], unique: true, name: 'mm_uniqueness', where: 'a != null'