为什么这个复合主键不能按预期工作?

时间:2011-02-27 20:13:59

标签: mysql-error-1062 compound-key

我有一个带有复合主键的表“tbl_project_user_assignment”。

它由project_id和user_id

组成

这些中的每一个也分别是项目和用户表的外键。

目前,我在此表中有2个条目,如下所示......

project_id | user_id
--------------------
1          | 1
1          | 2

当我运行这个SQL查询时......

  

INSERT INTO   tbl_project_user_assignment   (project_id,user_id)VALUES(2,1);

...我收到以下错误消息:

  

完整性约束违规:1062   密钥的重复条目“1”   'FK_project_user'

FK_project_user键是将project_id链接到tbl_project id的那个。

这对我来说没有意义,因为我插入的值是唯一的...

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

看起来FK_project_user是一个唯一的密钥。尝试暂时删除该约束并再次执行插入。

如果插入有效,请重新创建约束,确保它不再标记为unique

答案 1 :(得分:0)

我认为你应该:

  • 项目的外键关系
  • 与用户的外键关系
  • (项目,用户)的唯一约束
  • 可能是(项目,用户)组合的主键或单独的键字段 如果选择组合PK,当然不需要额外的约束。

似乎你对用户有一个独特的约束(单独)。

发布show create table声明会有所帮助。