如何禁用和启用表 mysql 中的所有约束,包括。PK FK CHK UNI 等

R. *_*Nec 6 mysql

我需要将测试数据加载到表中,我想禁用所有可能的约束,我已经找到了如何全局关闭外键,但我需要禁用所有约束,PK、FK、CHK、UNIQ 等。是否有可能在全球范围内做吗?当然,在那之后我必须调整所有约束。

Tri*_*mon 5

使用以下命令禁用约束:

-- disable UNIQ, PK, ...
ALTER TABLE <tablename> DISABLE KEYS;
-- diable FK
SET FOREIGN_KEY_CHECKS=0;
Run Code Online (Sandbox Code Playgroud)

例如,检查此网站以获取更多示例。恢复:

SET FOREIGN_KEY_CHECKS=1;
ALTER TABLE <tablename> ENABLE KEYS;
Run Code Online (Sandbox Code Playgroud)

来自参考:

  • 外键检查
  • D ISABLE KEYS : “使用 ALTER TABLE ... DISABLE KEYS 告诉 MySQL 停止更新非唯一索引。 ...”

ps:来自InnoDB性能调优技巧

SET autocommit=0; 
SET unique_checks=0; 
SET foreign_key_checks=0;
Run Code Online (Sandbox Code Playgroud)