Composite Unique key constraint with multiple null value in one of the column
我在表x上有一个唯一的键,有3列(a,b,c),其中a,b,c是外键,c在x表中可以为null。
上面的行在MySQL上有效,插入多行的行不会违反约束。但是,Oracle,SQL-Server不是这样。
这种情况下的最佳做法是什么?
每个唯一约束都会创建唯一索引,如果我禁用唯一索引,SQL-Server中也允许多个空值(带过滤索引)
我需要在列c中设置多个值,并将null作为其外键。
如果我从表x中的c列中删除外键,请建议我应该删除唯一键约束。 或者我们有任何其他解决方案。
这个索引做你想要的:
1 2 3 4 |
仅在Oracle中测试过。 在asktom网站上的类似问题:具有空值的唯一索引。
在SQL Server中,您可以使用筛选的索引:
这也适用于Postgres和Postgres派生的数据库。
Oracle不支持筛选索引。 您可以使用计算列来实现此目的 - 假设您有一个主键:
当