mysql - RESTRICT 和 NO ACTION 有什么区别?

标签 mysql sql foreign-keys

我正在尝试在列上创建一个 FK,现在我在想什么时候我应该使用 ON DELETE RESTRICT(或ON UPDATE RESTRICT)。这不是和 NO ACTION 一样吗?

ON DELETE RESTRICT 意味着如果存在引用该父行值的子行,则您不能删除给定的父行。如果父行没有引用子行,则可以删除该父行。好吧,它的定义无论如何都是外键的默认行为。

我错过了什么吗?

最佳答案

它们是等价的。它甚至在 documentation 中这样说:

NO ACTION: A keyword from standard SQL. In MySQL, equivalent to RESTRICT.

在具有延迟检查的数据库中它们之间存在差异,但 MySQL 没有。

关于mysql - RESTRICT 和 NO ACTION 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39338474/

相关文章:

php - 生成一个唯一的哈希值,可以用php作为mysql中的主键

SQL Server URL 解码

sql - PostgreSQL - 从长格式到宽格式

mysql - 如何使用 Innodb 确保 MySQL 中的多个表列是唯一的(或重构我的表)?

ruby-on-rails - Rails 引擎存在外键问题

php - 从两列的 MySQL 表中查找相同的值

mysql - 跟踪用户使用 MySQL 选择的数字列表的最有效方法?

java - 使用 JPA/QueryDSL 的类似数据透视的结果

MySQL 使用外键创建表给出 errno : 150

mysql - 使用选择查询问题