ホームページ >データベース >mysql チュートリアル >外部キーの参照アクションを ON DELETE CASCADE から ON DELETE RESTRICT に変更するにはどうすればよいですか?

外部キーの参照アクションを ON DELETE CASCADE から ON DELETE RESTRICT に変更するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 10:53:14592ブラウズ

How to Change a Foreign Key's Referential Action from ON DELETE CASCADE to 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。