1

複合主キーを持つテーブル「tbl_project_user_assignment」があります。

project_idとuser_idで構成されています

これらはそれぞれ、プロジェクトテーブルとユーザーテーブルへの外部キーでもあります。

現在、このテーブルには次の2つのエントリがあります...

project_id | ユーザーID
--------------------
1 | 1
1 | 2

このSQLクエリを実行すると...

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

...次のエラーメッセージが表示されます。

整合性制約違反:1062キー「FK_project_user」のエントリ「1」が重複しています

FK_project_userキーは、project_idをtbl_projectidにリンクするキーです。

私が挿入している値は一意であるため、これは私には意味がありません...

何か案は?

4

2 に答える 2

0

FK_project_userユニークキーのようです。その制約を一時的に削除して、挿入を再実行してください。

挿入が機能する場合は、制約が再作成され、フラグが付けられていないことを確認しuniqueます。

于 2011-02-27T20:16:51.917 に答える
0

私はあなたが持っているべきだと思います:

  • プロジェクトとの外部キー関係
  • ユーザーとの外部キー関係
  • (プロジェクト、ユーザー)に対する一意の制約
  • (プロジェクト、ユーザー)または個別のキーフィールドの組み合わせの主キーおそらく、組み合わせたPKを選択する場合は、もちろん追加の制約は必要ありません。

そして、ユーザーには(それ自体で)独自の制約があるようです。

show create tableステートメントを投稿すると、さらに役立ちます。

于 2011-02-27T20:23:06.207 に答える