首页  >  文章  >  数据库  >  MySQL 中删除父行后相关数据会发生什么情况?

MySQL 中删除父行后相关数据会发生什么情况?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 17:15:02971浏览

What Happens to Related Data When a Parent Row is Deleted in MySQL?

MySQL 默认 ON DELETE 行为解释

在 MySQL 中,ON DELETE 行为决定了当从父表中删除记录时,子表中的相关数据会发生什么情况。默认情况下,MySQL 采用 NO ACTION 行为。

默认行为:NO ACTION

NO ACTION 和 RESTRICT 都可以防止违反外键约束的更改。当省略 ON DELETE 子句时,这些默认行为将生效。它们通过防止删除或修改引用数据来保持引用数据的完整性。

其他行为选项

SET NULL:
删除父级行并将子表中的外键设置为 NULL(如果允许)。

CASCADE:
删除引用已删除父行的子行。

设置默认值:
InnoDB 不支持此选项。它被解析器识别,但在表定义时被拒绝。

摘要

下表总结了 MySQL 中可用的 ON DELETE 行为:

Behavior Description
NO ACTION Prevents deletion or update of parent rows
RESTRICT Same as NO ACTION
SET NULL Sets foreign key to NULL when parent row is deleted
CASCADE Deletes child rows when parent row is deleted

以上是MySQL 中删除父行后相关数据会发生什么情况?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn