2011-04-27 32 views
39

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

回答

11

它符合标准的SQL语法。像manual说:(重点煤矿)

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

13

它们在MySQL中是完全相同的。

在SQL 2003标准有5个不同参照动作:

CASCADE 
RESTRICT 
NO ACTION 
SET NULL 
SET DEFAULT 

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

相关问题