MySQL需要依赖于链接列的唯一列值
对不起,如果以前有人问过这个问题,但是我似乎找不到我要找的东西。(除了让PHP替我做检查之外) 我有一张像这样的桌子:MySQL需要依赖于链接列的唯一列值,mysql,Mysql,对不起,如果以前有人问过这个问题,但是我似乎找不到我要找的东西。(除了让PHP替我做检查之外) 我有一张像这样的桌子: ukey | dvar | dval 123 is_act true 123 is_act true 321 is_act true 321 active false 我想做的是基于ukey dvar和ukey行对必须是唯一的 因此,在我的测试用例中,表实际上应该如下所示: ukey | dvar | dval 123 is_act t
ukey | dvar | dval
123 is_act true
123 is_act true
321 is_act true
321 active false
我想做的是基于ukey
dvar
和ukey
行对必须是唯一的
因此,在我的测试用例中,表实际上应该如下所示:
ukey | dvar | dval
123 is_act true
321 is_act true
321 active false
我已经在根据ukey
/dvar
组合检查数据库,但是我想知道我所要求的是否可以约束MySQL
我想做的是基于
尤基
是的,将make(dvar,ukey)作为主键
PRIMARY KEY (dvar, ukey)
或者,在两个列上创建唯一的键约束
ALTER TABLE test
ADD CONSTRAINT uniqueconstraint UNIQUE(dvar, ukey);
“一个ukey只能连接到唯一的dvar”。。。但根据您的“应该看起来像”示例,
321
附加到is\u act
和active
@uuerdo yes,这是唯一的ukey
和dvar
行。编辑以减少混乱。那么Rahul下面的答案应该正是您需要的。这是否有效,因为dvar
本身并不要求是唯一的。唯一的事件dvar
是针对ukey
进行测试时唯一的事件。两个ukey
s可以具有相同的dvar,但相同的ukey
可能没有非唯一的dvar
s@HydraIO对多个字段的唯一约束只强制要求这些字段的值的组合必须是唯一的(NULL除外),而不是每个字段的值必须独立唯一。@rahul,谢谢。两个COL上的唯一
解决了这个问题。@HydraIO,这就是为什么我将它们作为复合键。看看答案。也就是说,通过组合,它们应该是唯一的。