MySQL 5.1没有强制FK约束,当我从父级删除一行时,
MYSQL 5.1:2个表(父表、子表);子项中的FK链接到父项的主项 当我转到mysql命令行并对父级执行删除操作时。 它允许我删除 当我在MySQL 5.6上进行相同的测试时。我得到了错误“无法删除或更新父行:外键约束失败”,这是我所期望的 这怎么可能呢?为什么MySQL不强制我的外键约束MySQL 5.1没有强制FK约束,当我从父级删除一行时,,mysql,Mysql,MYSQL 5.1:2个表(父表、子表);子项中的FK链接到父项的主项 当我转到mysql命令行并对父级执行删除操作时。 它允许我删除 当我在MySQL 5.6上进行相同的测试时。我得到了错误“无法删除或更新父行:外键约束失败”,这是我所期望的 这怎么可能呢?为什么MySQL不强制我的外键约束 还有一点,这两个表都是复制设置的一部分。这两个表都复制到另一台db服务器上不同框上的类似空间。您必须在删除级联时将外键设置为。这意味着删除父对象会强制子对象删除自身。获取的错误是因为外键停止父项删除自身,
还有一点,这两个表都是复制设置的一部分。这两个表都复制到另一台db服务器上不同框上的类似空间。您必须在删除级联时将外键设置为
。这意味着删除父对象会强制子对象删除自身。获取的错误是因为外键停止父项删除自身,因为子项无法删除自身
CONSTRAINT `child_table`
FOREIGN KEY (`parent_id`)
REFERENCES `parent_table` (`id`)
ON DELETE CASCADE ON UPDATE CASCADE
根据父项删除子项,然后再删除它。向我们显示您使用的create table
语句。还要检查5.1安装中的(默认)存储引擎。这可能仍然是MyISAM,它不支持FKsCONSTRAINTblahblah
外键(blah
)引用moreblah
(moreblah\u id
)引擎=InnoDB自动增量=1默认字符集=utf8行格式=动态;不幸的是,我没有在DB模式中显式配置的“on Delete CASCADE”选项。mysql是否默认通过常规配置/或全局参数隐式选择此选项?创建外键时,必须指定类型。使用级联而不是设置默认值。您必须手动更新表以反映这一点。