2017-11-02 10 views
1

2つのテーブルがあり、2つのテーブル間に外部キー関係が定義されています。 2番目のテーブルを更新しようとすると、次のエラーが発生します。SQL Serverで2つのリンクテーブルを更新する方法2016

The UPDATE statement conflicted with the REFERENCE constraint "FK__T2__owner__48CFD27E". The conflict occurred in database "MY_DB", table "dbo.T2", column 'T2.colomn1'.

最初のテーブルを参照する2番目のテーブルの列を更新するにはどうすればよいですか?

+0

更新ステートメントと両方のテーブルのスキーマを表示できますか? –

+0

これはmysql、mssql、postgressqlのどちらですか?それはここに2016 – Simon

+0

。私は実際に質問のいくつかの名前を変更しましたが、違いはありません – Parsa

答えて

0

おそらく両方のテーブルを更新する必要はありませんが、実際には望ましくない可能性があります。あなたのコメントに基づいて、あなたはpostal_codeテーブルを持っていると仮定していますか?アドレスに外部キーがある可能性は低いようですが、可能であると思います。両方を更新したくない理由は、post_officeテーブル内の他の行に同じpostal_codeを使用する可能性があるためです。

新しい郵便番号をpostal_codeテーブルに追加するだけです。 (私は名前を推測しました)

INSERT INTO postal_code 
VALUES ('1234567891') 

次に更新を行います。

UPDATE post_office 
SET address = 'Tehran p 190', postal_code = '1234567891' 
WHERE social_id = '0020366760' 

他の郵便局で古いpostal_codeを使用していると思わない場合は、いつでも自分で削除することができます。

DELETE FROM postal_code 
WHERE id = 'someid' 
+0

ありがとう、それは素晴らしいアイデアだった:)私に多くの時間を節約 – Parsa

0
  • あなたは私たちが外部キー参照を持つ列に更新される値は、あなたが参照する外部キーである値で更新することを確認して、テーブルT1のエントリを更新しようとしていますテーブル(カラムがNULL可能でない場合を除く)。

  • T2、column1を更新しようとしている値は、すでにT1.column2に存在している必要があります。

+0

実際に私はT2からの列を変更することはできません。それはT1と参照するため、私はそれらのいずれかを変更しようとしているとき、許可するか、私にいくつかのエラーを与えてください。 – Parsa

関連する問題