mysql表的三个唯一值

时间:2015-02-21 14:42:49

标签: mysql

考虑我在mysql表中有三个字段。

  • FIELD1
  • FIELD2
  • 字段3

我知道如果我将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 12 1 2不应存在(请注意field1和field2切换)。这究竟是如何工作的?

2 个答案:

答案 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",也许你可以把你做的事情,为了给出其他选择,因为这个配置你可以存储有限的数据