1

これらのスケジュール テーブル セッション列の中に 4 つのテーブルを含むプロジェクトがあります。

2つのテーブルからの3つの外部キー(ここでは1つのテーブルに2つの外部キーがあります)ここに値を追加しました..これについては誰でも知っています. SQLサーバー"

テーブル Shedule には主キーとしてセッション番号が含まれ、それは Q&A テーブルの外部キーとして使用されます。テーブル Q&A には主キーとして質問番号が含まれます。 Sheduleテーブル.Table Topicには、SheduleテーブルとQ&Aテーブルで外部キーとして使用される主キーとしてTopicidが含まれていますここで私の問題は、Sheduleテーブル(主キー)のセッション列に値を追加できないことです。 Q&A テーブル 次のようなエラーが表示されます エラー メッセージ: INSERT ステートメントが FOREIGN KEY 制約 "FK_QandA_Schedule" と競合しました。データベース「secon」、テーブル「dbo.Schedule」、列「Session_No」で競合が発生しました。ステートメントは終了されました。

4

3 に答える 3

1

挿入ステートメントが外部キー制約 SQL サーバーと競合しました

明らかに、参照されるテーブルで有効な値ではない外部キー フィールドの 1 つに何らかの値を挿入しようとしています。

あなたは3つの列があると言います-それらが参照するテーブルに対してそれらのそれぞれをチェックします-どれが有効でないかを理解するのはそれほど難しくないはずです-そして代わりに有効な値を使用します. これが参照整合性の要点です。テーブルに無効なデータを挿入しないようにしてください。

于 2010-05-11T05:14:56.813 に答える
1

エラーは、それが言うことを意味します。つまり、親テーブルにその ID に基づく列がありません。

具体的には、テーブルとINSERT文を見せてください。

更新:私があなたを正しければ:

1) 行をテーブルSheduleに INSERT しようとしていますよね?

その場合、INSERTしようとしているテーブルEmployeeにEmployeeidとテーブルTopicにTopicidが必要です。エラー メッセージによると、有効な Q&A 外部キー値がないと思われます。つまり、INSERT ステートメントに追加しようとしている Q&A 外部キー値は、Q&A テーブルに存在する必要があります。

2) テーブルQ&Aに行を INSERT しようとしていますか?

このテーブルには、有効なEmployeeid (そのうちの 2 つ?)、Topicid、およびSession_numberが必要です。

PSしかし、INSERTステートメントを表示しないと、何が問題なのかわかりません。

于 2010-05-11T05:16:02.930 に答える
0

カスケードルールを使用しました。一時的に動作していますが、結果はわかりません。

于 2010-05-14T06:21:59.690 に答える