如何禁用和启用表 mysql 中的所有约束,包括。 PK FK CHK UNI 等
Posted
技术标签:
【中文标题】如何禁用和启用表 mysql 中的所有约束,包括。 PK FK CHK UNI 等【英文标题】:How to disable and enable all constraints in table mysql incl. PK FK CHK UNI etc 【发布时间】:2015-05-23 20:25:06 【问题描述】:我需要将测试数据加载到表中,并且我想禁用所有可能的约束,我已经找到了如何全局关闭外键,但我需要禁用所有约束,PK、FK、CHK、UNIQ 等。是有可能在全球范围内做到吗?当然,在那之后我必须调整所有约束。
【问题讨论】:
为什么你认为这会有用?? 【参考方案1】:使用以下方法禁用约束:
-- disable UNIQ, PK, ...
ALTER TABLE <tablename> DISABLE KEYS;
-- diable FK
SET FOREIGN_KEY_CHECKS=0;
查看this site 以获取更多示例。恢复:
SET FOREIGN_KEY_CHECKS=1;
ALTER TABLE <tablename> ENABLE KEYS;
来自参考:
foreign_key_checks DISABLE KEYS: " 使用 ALTER TABLE ... DISABLE KEYS 告诉 mysql 停止更新非唯一索引。..."附言:来自InnoDB performance tuning tips
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
【讨论】:
是否可以在架构中全局禁用所有键? 根据这篇文章禁用是基于会话的:***.com/questions/8538636/… 我发出了禁用键命令。我的架构使用 innoDB 并向我返回警告“表的表存储引擎没有此选项” 好的,我明白了。可能对你有帮助:dev.mysql.com/doc/refman/5.0/en/innodb-tuning.html以上是关于如何禁用和启用表 mysql 中的所有约束,包括。 PK FK CHK UNI 等的主要内容,如果未能解决你的问题,请参考以下文章