为什么此化合物主键不能按预期工作?
我有一个表“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 重复关键 'FK_project_user'
的FK_project_user键输入 '1' 是一个将project_id链接到tbl_project id。
这没有意义,我因为我插入值是唯一的......
任何想法?
它看起来像FK_project_user
是一个独特的关键。尝试暂时删除该约束并再次执行插入操作。
如果插入工作,重新创建约束,确保它不再被标记为unique
。
谢谢巴勃罗,那真是太棒了! – Tom 2011-02-27 20:45:28
没有问题的汤姆!很高兴帮助。 – 2011-02-27 20:56:14
我想你应该有:
- 一个外键关系到项目
- 一个外键关系到用户
- 上(项目,用户)
- 可能是主键的唯一约束(项目,用户)或单独的关键字段的组合 如果您选择组合的PK,您当然不需要额外的约束。
看起来你对用户(本身)有一个独特的约束。
发布show create table
声明将有助于更多。
你可以发布创建三个表的代码吗? – 2011-02-27 20:18:11