我有一组 InnoDB
表,我定期需要通过删除一些行和插入其他行来维护它们。有几个表具有引用其他表的外键约束,因此这意味着表加载顺序很重要。要插入新行而不用担心表的顺序,我使用:
SET FOREIGN_KEY_CHECKS=0;
之前,然后:
SET FOREIGN_KEY_CHECKS=1;
之后。
加载完成后,我想检查一下更新表中的数据是否仍然保持参照完整性——新行不会破坏外键约束——但似乎没有办法做到这一点。
作为测试,我输入了确定违反外键约束的数据,在重新启用外键检查后,mysql 没有产生任何警告或错误。
如果我试图找到一种方法来指定表加载顺序,并在加载过程中保留外键检查,这将不允许我在具有自引用外键约束的表中加载数据,因此这将不是一个可接受的解决方案。
有没有办法强制 InnoDB 验证表或数据库的外键约束?