ホームページ  >  記事  >  データベース  >  MySQL のデフォルトの ON DELETE 動作は何ですか?

MySQL のデフォルトの ON DELETE 動作は何ですか?

DDD
DDDオリジナル
2024-11-04 12:00:05511ブラウズ

What is MySQL's Default ON DELETE Behavior?

MySQL のデフォルトの ON DELETE 動作

データベースを操作する場合、データの整合性を維持するには外部キー制約の動作を理解することが重要です。 MySQL には、親テーブルの行が削除されたときに実行するアクションを指定するためのさまざまなオプションが用意されており、その 1 つがデフォルトの動作です。

デフォルトの動作

MySQL のデフォルトの ON DELETE 動作では、参照整合性が強制され、子テーブルとの関係を壊すような親テーブルへの変更が防止されます。これは、NO ACTION または RESTRICT オプションによって実現されます。これらのオプションはどちらも、子テーブルに依存する行が存在する場合、基本的に削除を禁止します。

その他のオプション

MySQL では、ON DELETE イベントを処理するための追加オプションが提供されています。

  • SET NULL: 親行を削除し、外部キーをNOT NULL が宣言されていない場合は、子テーブルを NULL に設定します。
  • CASCADE: 親行を削除し、子テーブル内の依存行を自動的に削除します。
  • SET DEFAULT : このオプションは InnoDB によって拒否されているため、使用できません

したがって、質問に答えるには:

  • はい、前提は正しいです。 MySQL のデフォルトの ON DELETE 動作は NO ACTION (または RESTRICT) であり、外部キー制約に違反するデータベース変更を防止します。
  • NO ACTION と RESTRICT は同義であり、ON DELETE 句が指定されていない場合に適用されます。
  • SET NULL は親行の削除を許可し、外部キーを NULL に設定します。
  • CASCADE は親を削除し、依存行。
  • SET DEFAULT は、InnoDB によって拒否されるため使用しないでください。

以上がMySQL のデフォルトの ON DELETE 動作は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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