具有两个主键的表中允许重复记录

时间:2014-10-16 18:19:57

标签: php mysql sql

我有一个表“UserDetails”,其中两列即“EmailId”和“UserId”被设置为主键。但是,当我尝试将重复值插入表中时,我没有从SQL引擎中获得任何密钥冲突。我该如何调试呢?

截图:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

您没有两个主键,您有一个复合主键,其中两列被视为主键。

这意味着两列一起必须是唯一的。您当前的屏幕截图显示,虽然两个记录具有相同的电子邮件,但相应的行具有不同的用户ID,因此主要(复合)密钥在两者之间是唯一的,因为两者之间的emailid和userid都不相同记录。

详细了解复合键here

编辑:我并不完全确定您要完成的任务,但我的猜测是您希望将userid作为主键,并将emailid作为一个独特的字段。