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

外部キーの ON DELETE CASCADE を ON DELETE RESTRICT に変更するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-29 18:18:16
オリジナル
675 人が閲覧しました

How to Change ON DELETE CASCADE to ON DELETE RESTRICT for Foreign Keys?

外部キーの参照アクションの変更: ステップバイステップ ガイド

データベース管理では、外部キーはテーブル間のデータをリンクすることによって参照整合性を強制します。デフォルトでは、ほとんどのデータベース システムは「ON DELETE CASCADE」動作で外部キーを設定します。これにより、親レコードが削除されると子レコードも削除されます。

ただし、この動作を「」に変更する必要があるシナリオもあります。削除制限中。」この変更により、親レコードに既存の子レコードがある場合、親レコードは削除されなくなります。

ステップ 1: 古い制約の削除

参照アクションを変更するには、まず既存の制約を削除する必要があります。次の構文を使用します。

ALTER TABLE table_name DROP FOREIGN KEY constraint_name;
ログイン後にコピー

「table_name」を外部キーを含むテーブルの名前に置き換え、「constraint_name」を既存の制約の名前に置き換えます。

ステップ 2: 新しい制約の追加制約

古い制約を削除したら、必要な参照を持つ新しい制約を追加できます。 アクション。次の構文を使用します。

ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES referenced_table(referenced_column) ON DELETE RESTRICT;
ログイン後にコピー

「table_name」を以前と同じテーブルに置き換え、「constraint_name」を新しい制約の名前に置き換え、「column_name」を外部キー列に置き換え、「referenced_table」を参照テーブルに置き換えます。 、および「referenced_column」は参照テーブル内の参照列です。

例: 変更ON DELETE CASCADE から ON DELETE RESTRICT

次のテーブル構造を検討します。

CREATE TABLE UserDetails (
  Detail_id INT PRIMARY KEY,
  User_id INT NOT NULL,
  FOREIGN KEY (User_id) REFERENCES Users (User_id) ON DELETE CASCADE
);
ログイン後にコピー

参照アクションを「ON DELETE RESTRICT」に変更するには、次の手順に従います。

  1. 既存のものを削除します制約:

    ALTER TABLE UserDetails DROP FOREIGN KEY FK_User_id;
    ログイン後にコピー
  2. 新しい制約を追加します:

    ALTER TABLE UserDetails ADD CONSTRAINT FK_User_id FOREIGN KEY (User_id) REFERENCES Users (User_id) ON DELETE RESTRICT;
    ログイン後にコピー

これらの変更後、「Users」テーブルのレコードを削除します削除が「UserDetails」テーブルにカスケードされなくなります。 「Users」の親レコードを参照する「UserDetails」の既存の子レコードが存在する場合、削除は制限されます。

以上が外部キーの ON DELETE CASCADE を ON DELETE RESTRICT に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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