我有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)

我该怎么做?

最佳答案

尝试创建部分索引:

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

关于ruby-on-rails - 唯一索引允许rails中的空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30544310/

10-13 05:21