2011-02-27 85 views
1

我有一个表“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。

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

任何想法?

+0

你可以发布创建三个表的代码吗? – 2011-02-27 20:18:11

回答

0

它看起来像FK_project_user是一个独特的关键。尝试暂时删除该约束并再次执行插入操作。

如果插入工作,重新创建约束,确保它不再被标记为unique

+0

谢谢巴勃罗,那真是太棒了! – Tom 2011-02-27 20:45:28

+0

没有问题的汤姆!很高兴帮助。 – 2011-02-27 20:56:14

0

我想你应该有:

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

看起来你对用户(本身)有一个独特的约束。

发布show create table声明将有助于更多。

相关问题