MySQL RESTRICT和NO ACTION

Ere*_*bus 54 mysql cascade foreign-keys

MySQL RESTRICT和FK之间有什么区别NO ACTION?从文档中他们看起来完全一样.是这样的吗?如果是这样,为什么两者都有?

Ant*_*oly 45

来自MySQL文档:https://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html

某些数据库系统具有延迟检查,NO ACTION是延迟检查.在MySQL中,立即检查外键约束,因此NO ACTION与RESTRICT相同.


Nan*_*nne 16

它符合标准的SQL语法.就像手册说的那样:(强调我的)

NO ACTION:标准SQL中的关键字.在MySQL中,相当于RESTRICT.如果引用的表中存在相关的外键值,则MySQL服务器拒绝父表的删除或更新操作.某些数据库系统具有延迟检查,NO ACTION是延迟检查.在MySQL中,立即检查外键约束,因此NO ACTION与RESTRICT相同.


Wol*_*lph 16

它们在MySQL中完全相同.

在SQL 2003标准中,有5种不同的引用操作:

CASCADE
RESTRICT
NO ACTION
SET NULL
SET DEFAULT
Run Code Online (Sandbox Code Playgroud)

NO ACTION和之间的区别RESTRICT是,根据标准,立即行动时NO ACTION推迟RESTRICT.