【发布时间】:2019-07-24 22:11:38
【问题描述】:
我的表有四列city、zipcode、number 和extra。我为city、zipcode 和number 创建了唯一组,称为unique1,为city、zipcode、number 和extra 创建了另一个组,称为unique2。这些组需要是唯一的,但问题是当extra 不同或为空时,我可以有非唯一值。例如:
city | zipcode | number | extra
A 123 123 null
A 123 123 10 (I cant add this row because of the unique groups)
我该如何解决这个问题? (我用的是Mysql)
换句话说,我需要的是一种方法:
1) 如果 extra 为 null,则城市、邮政编码和号码的分组必须是唯一的 2) 如果 extra 不为 null,即使新行与 '1' 上的唯一规则冲突,我也想插入该信息。
【问题讨论】:
-
为什么不 change
extra而不是添加一行? (使用UPDATE) -
@RickJames 因为我需要这两行。当 extra 不同或 null 时,它们是不同的
标签: mysql sql indexing unique-constraint unique-key