[解決済み] 更新時のSqlエラー : UPDATE ステートメントが FOREIGN KEY 制約と競合しています。
2022-01-30 16:52:47
質問
というテーブルがあります。
patient_address
でPKキーを参照する。
patient
テーブルを作成します。しかし、私は次の文のいずれかを実行しようとすると。
update patient set id_no='7008255601088' where id_no='8008255601089'
update patient_address set id_no='7008255601088' where id_no='8008255601089'
このようなエラーメッセージが表示されるのですが。
UPDATE 文は REFERENCE 制約と競合しています。 "FK__patient_a__id_no__27C3E46E". この競合は、データベース "PMS"、テーブル "dbo.patient_address"、列 'id_no'." または "The UPDATE 文は FOREIGN KEY 制約と競合していました。 "FK__patient_a__id_no__27C3E46E". この競合はデータベース "PMS", テーブル "dbo.patient", カラム 'id_no'." .
どなたか原因をご存知の方はいらっしゃいますか?ありがとうございます。
解決方法を教えてください。
このエラーは、あるテーブルの主キーが更新されたが、他のテーブルからの外部キーによって参照されており、更新の指定がアクションなしに設定されている場合に発生します。No action はデフォルトのオプションです。
このようなケースで、更新操作にNo actionが設定されている場合、外部キーの定義をCascadeに変更することができます。
外部キーを右クリックし 修正 . 外部キー関係ダイアログのINSERTとUPDATEの項目で、UPDATEのルールをカスケード(Cascade)に設定します。
また、T-SQLを使用してルールを設定することもできます。
ALTER TABLE YourTable
DROP Constraint Your_FK
GO
ALTER TABLE YourTable
ADD CONSTRAINT [New_FK_Constraint]
FOREIGN KEY (YourColumn) REFERENCES ReferencedTable(YourColumn)
ON DELETE CASCADE ON UPDATE CASCADE
GO
これが役に立つといいのですが
関連
-
[解決済み】SQL Server データベース復元エラー:指定されたキャストは有効ではありません。(SqlManagerUI)
-
[解決済み] 式をデータ型datetimeに変換する際に算術オーバーフローエラーが発生する。(日付と時刻の表示中に...)
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] TABLOCKとTABLOCKXの比較
-
[解決済み] データ損失の可能性があるため、スキーマの更新を終了します。
-
[解決済み] 関数内から実行できるのは、関数と一部の拡張ストアドプロシージャのみです。
-
[解決済み] データベース内の全テーブルのサイズを取得する
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] 外部キー制約は、サイクルまたは複数のカスケードパスの原因となる可能性がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 更新時のSqlエラー : UPDATE ステートメントが FOREIGN KEY 制約と競合しています。
-
[解決済み] SQL Server xp_delete_file パラメータ
-
[解決済み] Microsoft OLE DB Provider for SQL Server エラー '80040e14' '=' 付近の構文が正しくない
-
[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。
-
[解決済み] ')' 付近の構文が正しくない場合の対処方法
-
[解決済み] SQL Server: caseステートメントでUniqueIdentifierを文字列に変換する
-
[解決済み] BCP - IDENTITY列を持つテーブルにインポートする際、キャスト指定に無効な文字値がある。
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] シンプルに保つ、クエリで複数のCTEを行う方法
-
[解決済み] T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?