データベース設計では、外部キーはテーブル間の関係を確立してデータの整合性を維持するために重要です。外部キーを定義するときは、参照される親レコードが変更または削除されたときに子レコードに何が起こるかを制御する参照アクションを指定します。
一般的な参照アクションの 1 つは ON DELETE CASCADE です。これは、子レコードが変更または削除されたときに子レコードを自動的に削除します。親レコードが削除されます。この動作を ON DELETE RESTRICT に変更し、関連する子レコードを持つ親レコードが削除されないようにするには、次の手順を使用できます。
以下を実行します。既存の外部キー制約を削除する SQL コマンド:
ALTER TABLE `table_name` DROP FOREIGN KEY `constraint_name`;
ここで、table_name は外部キー列を含むテーブルです。
次に、目的の 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 に変更するには、次の手順に従います:
既存の外部キー制約を削除します:
ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
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 サイトの他の関連記事を参照してください。