mySQL RESTRICT和NO ACTION

RESTRICT和NO ACTION之间的mySQL FK有什么区别? 从文件看,他们看起来完全一样。 这是这种情况吗? 如果是这样,为什么都有呢?

从MySQL文档: http : //dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

一些数据库系统有延期检查,NO ACTION是延期检查。 在MySQL中,外键约束被立即检查,所以NO ACTION和RESTRICT是一样的。

它们在MySQL中是相同的。

在SQL 2003标准中,有5个不同的参考操作:

CASCADE RESTRICT NO ACTION SET NULL SET DEFAULT 

NO ACTIONRESTRICT之间的区别在于,根据标准, NO ACTION被延迟,而RESTRICT立即行动。

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

NO ACTION: 来自标准SQL的关键字 。 在MySQL中,相当于RESTRICT。 如果被引用的表中存在相关的外键值,MySQL服务器会拒绝父表的删除或更新操作。 一些数据库系统有延期检查,NO ACTION是延期检查。 在MySQL中,外键约束被立即检查,所以NO ACTION和RESTRICT是一样的。