2011-02-27 75 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聲明將有助於更多。

相關問題