Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 5.1没有强制FK约束,当我从父级删除一行时,_Mysql - Fatal编程技术网

MySQL 5.1没有强制FK约束,当我从父级删除一行时,

MySQL 5.1没有强制FK约束,当我从父级删除一行时,,mysql,Mysql,MYSQL 5.1:2个表(父表、子表);子项中的FK链接到父项的主项 当我转到mysql命令行并对父级执行删除操作时。 它允许我删除 当我在MySQL 5.6上进行相同的测试时。我得到了错误“无法删除或更新父行:外键约束失败”,这是我所期望的 这怎么可能呢?为什么MySQL不强制我的外键约束 还有一点,这两个表都是复制设置的一部分。这两个表都复制到另一台db服务器上不同框上的类似空间。您必须在删除级联时将外键设置为。这意味着删除父对象会强制子对象删除自身。获取的错误是因为外键停止父项删除自身,

MYSQL 5.1:2个表(父表、子表);子项中的FK链接到父项的主项

当我转到mysql命令行并对父级执行删除操作时。 它允许我删除

当我在MySQL 5.6上进行相同的测试时。我得到了错误“无法删除或更新父行:外键约束失败”,这是我所期望的

这怎么可能呢?为什么MySQL不强制我的外键约束


还有一点,这两个表都是复制设置的一部分。这两个表都复制到另一台db服务器上不同框上的类似空间。

您必须在删除级联时将外键设置为
。这意味着删除父对象会强制子对象删除自身。获取的错误是因为外键停止父项删除自身,因为子项无法删除自身

CONSTRAINT `child_table` 
    FOREIGN KEY (`parent_id`) 
    REFERENCES `parent_table` (`id`) 
    ON DELETE CASCADE ON UPDATE CASCADE

根据父项删除子项,然后再删除它。向我们显示您使用的
create table
语句。还要检查5.1安装中的(默认)存储引擎。这可能仍然是MyISAM,它不支持FKsCONSTRAINT
blahblah
外键(
blah
)引用
moreblah
moreblah\u id
)引擎=InnoDB自动增量=1默认字符集=utf8行格式=动态;不幸的是,我没有在DB模式中显式配置的“on Delete CASCADE”选项。mysql是否默认通过常规配置/或全局参数隐式选择此选项?创建外键时,必须指定类型。使用级联而不是设置默认值。您必须手动更新表以反映这一点。