# 外键约束行为
# CASCADE
当你希望在删除或更新主表记录时,自动删除或更新所有关联的子表记录。适用于主从关系非常紧密的场景,例如订单和订单项。
示例:删除一个客户时,也删除该客户的所有订单。
# SET NULL
当你希望在删除或更新主表记录时,只将子表中的外键列设置为NULL,而不删除子表记录。适用于子表记录可以存在但没有关联的场景。
示例:删除一个部门时,将该部门的所有员工的department_id设为NULL,但不删除员工记录。
# NO ACTION
当你希望严格维护数据的完整性,不允许删除或更新主表记录,除非所有相关的子表记录已经被处理。适用于需要手动管理数据的场景。
示例:不允许删除有订单的客户,除非这些订单被转移或处理。
# RESTRICT
类似于NO ACTION,但会立即检查外键约束,而不是推迟到事务提交时。
← 设置字符编码集 数据库设计三大范式-白话版 →