如何强制截断MySQL中数据库中的所有表(都是innodb)?

arv*_*sim 15 mysql innodb

当我尝试截断innodb表时,我想我得到了外键约束错误.使用MyISAM时,我没有遇到任何问题.

是否有一种简单的方法可以强制截断所有表格?或者我应该创建一个脚本来删除数据库,创建一个新的,然后从头创建表?

Dev*_*art 55

关于FK约束,您可以使用下一个语句禁用它们 -

SET FOREIGN_KEY_CHECKS = 0;
...DML statements
SET FOREIGN_KEY_CHECKS = 1; -- enable checking
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做,因为你会得到外键约束错误.请改用"DELETE FROM table".它不会级联删除在其他表中找到的每个记录,因为它是外键. (3认同)

vbe*_*nce 8

如果您在操作过程中遇到外键问题,您可以:

ALTER TABLE tablename DISABLE KEYS
Run Code Online (Sandbox Code Playgroud)

然后开展业务,然后重新启用密钥:

ALTER TABLE tablename ENABLE KEYS
Run Code Online (Sandbox Code Playgroud)

此技术用于MySQL转储.