MySQL - 检查唯一约束的顺序

时间:2015-05-06 19:30:39

标签: mysql unique-constraint

我有一张包含4个唯一列(Id, Email, Name, FacebookId)的表格。 ID是自动递增的,因此与问题无关。我想知道是否有办法指定唯一字段的优先级。

例如,我插入(test@test.com, Test, 123456)。然后我尝试插入相同的数据,这会触发电子邮件列上的约束违规。有没有办法首先在FacebookId列上触发此违规行为?

我试图重新排序phpMyAdmin中的列,也尝试删除并以不同的顺序添加唯一约束但没有任何效果。这有可能吗?

1 个答案:

答案 0 :(得分:0)

嗯......我在mysql.com上发现了这个,这会有帮助吗?

  

MySQL支持INSERT,UPDATE等IGNORE关键字。如果   你使用它,MySQL忽略主键或唯一键违规和   继续处理下一行。

(来源:https://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html

以下是他们关于将IGNORE与INSERT一起使用的部分,在顶部是一个我认为可能真有帮助的例子 - 它看起来像是优先考虑的事情 - 检查出来!我希望这会有所帮助:https://dev.mysql.com/doc/refman/5.0/en/insert.html

你希望SQL只担心FacebookId,或者你只是想让它验证FacebookId不是一个重复的FIRST,然后继续并验证其他列的数据也没有被欺骗(在这种情况下)可能只是电子邮件,因为多个人可以使用相同的拼写名称),例如“首先确保FacebookId是唯一的,然后确保电子邮件是唯一的”,等等?