Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL限制,不执行任何操作_Mysql_Foreign Keys_Cascade - Fatal编程技术网

MySQL限制,不执行任何操作

MySQL限制,不执行任何操作,mysql,foreign-keys,cascade,Mysql,Foreign Keys,Cascade,MySQL FK中的RESTRICT和NO ACTION之间有什么区别?从医生看来,他们似乎完全一样。是这样吗?如果是这样,为什么两者都有?这是为了符合标准SQL语法。就像上面说的:(强调我的) 无操作:标准SQL中的关键字。在MySQL中,相当于RESTRICT。如果引用的表中存在相关的外键值,MySQL服务器将拒绝父表的删除或更新操作某些数据库系统具有延迟检查,并且没有操作是延迟检查。在MySQL中,会立即检查外键约束,因此没有操作与限制相同。 来自MySQL文档: 一些数据库系统已经推迟

MySQL FK中的
RESTRICT
NO ACTION
之间有什么区别?从医生看来,他们似乎完全一样。是这样吗?如果是这样,为什么两者都有?

这是为了符合标准SQL语法。就像上面说的:(强调我的)

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


来自MySQL文档:

一些数据库系统已经推迟 检查,并且
无操作
是延迟操作 检查。在MySQL中,外键 立即检查约束条件, 因此,
NO ACTION
RESTRICT
相同


它们在MySQL中是相同的

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

CASCADE
RESTRICT
NO ACTION
SET NULL
SET DEFAULT
NO-ACTION
RESTRICT
之间的区别在于,根据标准,
NO-ACTION
被延迟,而
RESTRICT
立即动作