MySQL:截断时在空表之间检查FK约束
我是这样截断表的MySQL:截断时在空表之间检查FK约束,mysql,foreign-keys,constraints,Mysql,Foreign Keys,Constraints,我是这样截断表的 TRUNCATE TABLE `enterprise_url_rewrite`; -- error TRUNCATE TABLE `enterprise_catalog_category_rewrite`; -- works fine 按那个顺序,或者在我出错时颠倒过来 Cannot truncate a table referenced in a foreign key constraint (`magento`.`enterprise_catalog_category_
TRUNCATE TABLE `enterprise_url_rewrite`; -- error
TRUNCATE TABLE `enterprise_catalog_category_rewrite`; -- works fine
按那个顺序,或者在我出错时颠倒过来
Cannot truncate a table referenced in a foreign key constraint
(`magento`.`enterprise_catalog_category_rewrite`, CONSTRAINT
`FK_415B32DA3DF924D5C803CF24EB3AC1D9` FOREIGN KEY (`url_rewrite_id`) REFERENCES
`magento`.`enterprise_url_rewrite` (`url_rewrite_id`)
我认为强制外键约束是为了防止在引用实际值时删除。我记得(我可能错了)以前能够截断
此表而不禁用密钥检查。请注意,deleteofronterprise\u url\u rewrite
有效
有关enterprise\u catalog\u category\u rewrite
上约束定义的更多信息
KEY `FK_744D72D1D79D148B7C2542E53B0370B5` (`url_rewrite_id`),
CONSTRAINT `FK_744D72D1D79D148B7C2542E53B0370B5` FOREIGN KEY (`url_rewrite_id`)
REFERENCES `enterprise_url_rewrite` (`url_rewrite_id`) ON DELETE CASCADE ON UPDATE NO ACTION
约束的定义是什么?您是否禁用了检查约束?它有一个
ON DELETE CASCADE
选项(后更新),在企业url\u rewrite上删除记录时删除引用的企业目录\u类别\u rewrite
记录,对吗,TRUNCATE
不是DELETE。
YeahDELETE
适用于enterprise\u url\u rewrite
。无论相关表中是否存在记录,该约束定义是否阻止enterprise\u url\u rewrite
上的TRAUNCATE