目次
外部キー参照アクションの変更
ステップ 1: 既存の外部キー制約を削除する
ステップ 2: ON DELETE RESTRICT を使用して新しい外部キー制約を追加する
ホームページ データベース mysql チュートリアル 外部キーの ON DELETE アクションを CASCADE から RESTRICT に変更するにはどうすればよいですか?

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

Dec 01, 2024 am 12:59 AM

How to Change a Foreign Key's ON DELETE Action from CASCADE to RESTRICT?

外部キー参照アクションの変更

データベース設計では、外部キーはテーブル間の関係を確立してデータの整合性を維持するために重要です。外部キーを定義するときは、参照される親レコードが変更または削除されたときに子レコードに何が起こるかを制御する参照アクションを指定します。

一般的な参照アクションの 1 つは ON DELETE CASCADE です。これは、子レコードが変更または削除されたときに子レコードを自動的に削除します。親レコードが削除されます。この動作を ON DELETE RESTRICT に変更し、関連する子レコードを持つ親レコードが削除されないようにするには、次の手順を使用できます。

ステップ 1: 既存の外部キー制約を削除する

以下を実行します。既存の外部キー制約を削除する SQL コマンド:

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

ここで、table_name は外部キー列を含むテーブルです。

ステップ 2: ON DELETE RESTRICT を使用して新しい外部キー制約を追加する

次に、目的の ON DELETE RESTRICT 動作を使用して新しい外部キー制約を作成します。 :

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

ここで、foreign_key_column は、参照している table_name 内の列です。 Referenced_table、referenced_table は参照される列を含むテーブル、referenced_column は外部キーによって参照される Referenced_table 内の列、new_constraint_name は新しい外部キー制約の名前です。

例:

別のテーブル Users を参照する外部キー User_id を持つテーブル UserDetails を考えてみましょう。参照アクションを ON DELETE CASCADE から ON DELETE RESTRICT に変更するには、次の手順に従います:

  1. 既存の外部キー制約を削除します:

    ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
    ログイン後にコピー
  2. ON DELETE を使用して新しい外部キー制約を追加しますRESTRICT:

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

これらの手順を実行すると、外部キーの参照アクションを変更して、必要なデータ整合性ルールがデータベースに確実に適用されるようにすることができます。

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

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DockerでのMySQLメモリの使用を減らします DockerでのMySQLメモリの使用を減らします Mar 04, 2025 pm 03:52 PM

DockerでのMySQLメモリの使用を減らします

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Mar 19, 2025 pm 03:51 PM

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

mysqlの問題を解決する方法共有ライブラリを開くことができません mysqlの問題を解決する方法共有ライブラリを開くことができません Mar 04, 2025 pm 04:01 PM

mysqlの問題を解決する方法共有ライブラリを開くことができません

sqliteとは何ですか?包括的な概要 sqliteとは何ですか?包括的な概要 Mar 04, 2025 pm 03:55 PM

sqliteとは何ですか?包括的な概要

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Mar 04, 2025 pm 03:54 PM

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド Mar 04, 2025 pm 03:49 PM

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? 共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? Mar 18, 2025 pm 12:00 PM

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? Mar 18, 2025 pm 12:01 PM

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

See all articles