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

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

Linda Hamilton
リリース: 2024-12-04 10:53:14
オリジナル
601 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート