小编pcr*_*nin的帖子

强制InnoDB重新检查表/表上的外键?

我有一组InnoDB表,我经常需要通过删除一些行并插入其他行来维护.其中一些表具有引用其他表的外键约束,因此这意味着表加载顺序很重要.要插入新行而不必担心表的顺序,我使用:

SET FOREIGN_KEY_CHECKS=0;
Run Code Online (Sandbox Code Playgroud)

之前,然后:

SET FOREIGN_KEY_CHECKS=1;
Run Code Online (Sandbox Code Playgroud)

后.

加载完成后,我想检查更新表中的数据是否仍然保持参照完整性 - 新行不会破坏外键约束 - 但似乎没有办法做到这一点.

作为测试,我输入的数据确实违反了外键约束,并且在重新启用外键检查时,mysql没有产生任何警告或错误.

如果我试图找到一种方法来指定表加载顺序,并在加载过程中留在了外键检查,这不会让我在具有自引用外键约束的表加载数据,因此这将不是一个可接受的解决方案

有没有办法强制InnoDB验证表或数据库的外键约束?

mysql innodb foreign-keys

60
推荐指数
3
解决办法
2万
查看次数

标签 统计

foreign-keys ×1

innodb ×1

mysql ×1