ホームページ >データベース >mysql チュートリアル >外部キーの参照アクションを ON DELETE CASCADE から ON DELETE RESTRICT に変更するにはどうすればよいですか?
外部キー参照アクションの変更
外部キー制約は、テーブル間の関係を確立することでデータの整合性を強制します。一般的なシナリオの 1 つは、参照されたレコードが削除されたときの動作を管理することです。この記事では、参照アクション、特に ON DELETE CASCADE から ON DELETE RESTRICT に変更する方法について説明します。
ON DELETE CASCADE と ON DELETE RESTRICT
ON DELETE CASCADE:親レコードが削除されると、一致するすべての子レコードが自動的に削除されます。この動作により、意図しないデータ損失が発生する可能性があります。
ON DELETE RESTRICT: 子レコードがある場合、親レコードの削除を防止します。これにより、データの整合性が確実に維持されます。
参照アクションを変更する SQL コマンド
次の SQL コマンドは、外部キー列の参照アクションを変更します。
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> FOREIGN KEY (<column_name>) REFERENCES <referenced_table_name> ON DELETE <referential_action>
あなたの場合、table_name は「table1」、constraint_name は「fk_table2_id」、column_name は「fk_table2_id」、referenced_table_name は「table2」、referential_action は「RESTRICT」です。
例
2 つのテーブルがあるとします。 、「テーブル1」、および"table2":
CREATE TABLE table1 ( id INT NOT NULL, fk_table2_id INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE CASCADE ); CREATE TABLE table2 ( id INT NOT NULL, PRIMARY KEY (id) );
"table1" の外部キー制約を ON DELETE RESTRICT に変更するには、次のコマンドを実行します:
ALTER TABLE table1 ADD CONSTRAINT fk_table2_id FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE RESTRICT;
これにより、レコードの削除が防止されます。 「table1」にそれを参照する子レコードがまだある場合は、「table2」から。
以上が外部キーの参照アクションを ON DELETE CASCADE から ON DELETE RESTRICT に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。