考虑我在mysql表中有三个字段。
我知道如果我将field1和field2作为唯一加入,则适用以下规则:
field1, field2
1 2 //is allowed
2 1 //is NOT allowed if (1,2) exists
我怀疑这将如何适用于三个领域。例如
field1, field2, field3
1 2 1 //is allowed
1 2 2 //is this allowed (if previous exist)?
2 1 2 //is this allowed? (if previous exist)
2 1 3 //is this allowed? (only if the first one exists)
我真正需要的是避免重复 field1和field2对。这是,我希望1 2 1
以及1 2 2
存在,但2 1 1
或2 1 2
不应存在(请注意field1和field2切换)。这究竟是如何工作的?
答案 0 :(得分:0)
在INSERTing之前对列值进行排序。这样,field1总是< field2和field2<字段3。当你要INSERT时,也要排序。然后你可以使用`UNIQUE(field1,field2,field3)作为约束来防止重复。
答案 1 :(得分:-1)
我真的不知道你在做什么,但请注意当你放置一个独特的字段时,不能再重复,所以0 0 0 0 , 1 1 1 1, 2 2 2 2, 3 3 3 3
没有问题,但是如果你尝试按照1 0 0 1, 1 0 0 2...
进行编号,你会得到结果是错误,并且不会保存数据。因为field1重复了" 1",也许你可以把你做的事情,为了给出其他选择,因为这个配置你可以存储有限的数据