【发布时间】:2014-07-03 05:23:10
【问题描述】:
我有一张这样的桌子:
ID UserID Country IsDefault
1 7 90 0
2 7 93 0
3 7 95 1
4 7 88 0
5 8 34 0
6 8 55 1
7 8 27 0
8 8 12 0
ID 是主键。 UserID 来自用户表。 CountryID 来自国家表。 IsDefault 显示哪些国家是用户的默认国家/地区。
是否可以只允许一个 isDefault = 1 用于使用复合键的 UserId? IE。 UserId = 7 的组合应该只有一个 IsDefault = 1 的实例。UserId 7 的所有其他实例都应该有 isDefault 0。UserId 8 也是如此,它应该只有一个默认国家/地区。
【问题讨论】:
-
也许使用触发器?
-
为什么不在用户表中将默认国家作为字段?
-
你们是对的。但我很好奇是否可以添加这样的约束。
标签: mysql sql composite-key