1

次のフィールドを持つ2つのテーブルがあります。

表1 :

学生マスター

田畑 :

stu_id(primary key)
name
class
doc upload
sub_id(foreign_key)

表2:

主題

田畑 :

sub_id(primary key)
subject name

しかし、フォームにエントリを挿入すると、次のエラーが発生します。

INSERTステートメントがFOREIGNKEY制約「FK__student_m__sub_i__0C85DE4D」と競合しました。データベース"test2"、テーブル "dbo.subject"、列'sub_id'**で競合が発生しました

どこが間違っているのか教えてください。

4

4 に答える 4

2

Student Masterテーブルに存在しない値を の sub_idに挿入しようとしているためSubject(テーブルに参照がありませんSubject)

それらが最初のレコードである場合は、最初に挿入してSubjectから、Student Master

于 2012-09-06T06:05:49.490 に答える
0

最初にマスターレコードを挿入し、次に子レコードを挿入する必要があります。最初にレコードをStudentMasterテーブルに挿入してから、Subjectテーブルに挿入してみてください。あなたが私にあなたの挿入声明を送ればあなたがより良くあなたを助けるでしょう。

于 2012-09-06T06:41:23.423 に答える
0

テーブルに存在しないレコードをStudent Masterテーブルに挿入しているためです。table からの外部キーとしてof tableを指定したことを思い出してください。また、テーブルがテーブルに依存していることも意味します。これにより、参照整合性が失われます。sub_idsubjectsub_idStudent MastersubjectStudent Mastersubject

于 2012-09-06T06:06:34.203 に答える
0

FK が機能する方法は、参照されるテーブルの主キー列にもない値をその列に持つことはできないということです。

これは、テーブルに挿入しようとしている値が参照テーブルにないことを示す外部キー制約であるためです。

したがって、最初に、テーブルで使用可能なStudentテーブルに挿入するときに確認する必要があります。sub_idsubject

編集:

それを修正するには、Sql サーバー管理スタジオで次のコマンドを試してください。

sp_help 'dbo.subject'
于 2012-09-06T06:09:07.377 に答える