禁用特定表的mysql外键检查

时间:2014-07-09 09:35:12

标签: mysql constraints

是否可以禁用特定表的Mysql外键检查?

1 个答案:

答案 0 :(得分:0)

基本上,MySQL中没有内置功能。<​​/ p>

您可以禁用FK - 您可能知道 - 但不能用于特定的表 - 但所有。 下面是一个例子,它只适用于一个会话(从MySQL 5.xx你可以全局完成)。

SET FOREIGN_KEY_CHECKS = 0; #Off
SET FOREIGN_KEY_CHECKS = 1; #On

但是你可以用不同的方式处理这个问题 - 使用存储过程。

理论上,您可以构建从特定表中删除外键的存储过程,将所有这些(即表,FK名称,引用)保存到表中,以便您可以稍后检索所有这些并基于该重新创建相同的FK你以前有过。

但是这里的问题也是关于时间 - 你想让它们停用多长时间 - 以及主要原因是什么(一些大数据插入,更新,删除等)。