0

だから私はfkで互いに関連する2つのテーブルを持っています

appointment
  {id, dept.id, datetime, sometable.id, sometableagain.id}
task
  {id, appointment.id, deptlead.id, taskname}
deptlead
  {id, name}

そのため、予定テーブルを別のテーブルから別の外部キーに変更する必要がありました。だから私はキーを落とした(task_appointment_fk、任命_sometable_fk、任命_sometableagain_fk)テーブルを変更して新しいフィールドを追加し、すべてを再度追加しました。最後の 2 つは問題なく追加されました。もう1つ(task_appointment_fk)が私にこのメッセージを与え続けている間:

"ALTER TABLE statement conflicted with the Forien Key Constraint "dept_appointment". The Cconflict occurred in the database "MyDb" , table "appointment", column "id"

そのため、予定テーブルに存在しない予定ID値を持つ行がタスクにある可能性があることを示すいくつかの解決策を見つけました。だから私は同じ値を持つ行を挿入しようとしました。それでも私に同じことを与えます。問題は、タスクから行を削除して簡単にしたいのですが、それを行うには、すべての fk をもう一度削除して、他のテーブル全体で同じことを行う必要があり、他のテーブルがたくさんあります..

アドバイスが必要です。

ありがとう!!

4

1 に答える 1

0

外部キー テーブルのどの値が主キー テーブルに一致するキー レコードを持っていないかを確認するクエリを作成できます。値が存在する場合は、それらを削除してみてください。

select   * from     [task] a
left join [appointment] b
 on       a.appointment_id = b.id
于 2012-06-06T01:23:46.860 に答える