0

データベースに 2 つのテーブルがあります。主キーTableOneがあります。の対応する列を参照する外部キーがあります。今、私はで更新しようとしています:theKeyTableTwotheKeyTableOnetheKeyTableTwo

  UPDATE TableTwo
  SET theKey = NewIk
  FROM TableTwo W
  JOIN TableThree D ON W.theKey_backup = D.OldIk
  WHERE dt >= '2012-05-01'

しかし、次のエラーが表示されます。

UPDATE ステートメントが FOREIGN KEY 制約 "FK_TableTwo_TableOne" と競合しました。データベース「MyDB」、テーブル「dbo.TableOne」、列「theKey」で競合が発生しました。

に触れないとこのエラーが発生する理由を説明していただけますTableOneか?

ありがとう。

4

1 に答える 1

1

参照されているテーブルに存在しないTableTwo.theKey値に設定しようとしています- それがエラーの意味です。TableOne

なぜこれが起こっているのかを確認する必要があります - その新しい値をどこから選択していますか? に (まだ) 存在しない値なのはなぜTableOneですか?

于 2012-10-29T12:44:12.887 に答える