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 ACTION
和RESTRICT
之间的区别在于,根据标准, NO ACTION
被延迟,而RESTRICT
立即行动。
它符合标准的SQL语法。 就像手册里说的:(强调我的)
NO ACTION: 来自标准SQL的关键字 。 在MySQL中,相当于RESTRICT。 如果被引用的表中存在相关的外键值,MySQL服务器会拒绝父表的删除或更新操作。 一些数据库系统有延期检查,NO ACTION是延期检查。 在MySQL中,外键约束被立即检查,所以NO ACTION和RESTRICT是一样的。