截断所有表(大多数表都有约束).如何暂时放弃它们

13 mysql mysql-management

我有一个开发数据库(MYSQL),我想在某些时候加载新数据.我想删除所有表的内容.删除所有表(包括具有外键约束的表)的内容的最佳方法是尽可能自动化.是否有截断全部/丢弃所有等效约束?

谢谢

Pas*_*ent 29

我想你可以做到以下几点:

  1. 禁用外键约束检查

    mysql> SET FOREIGN_KEY_CHECKS = 0;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 截断你的表格

    mysql> TRUNCATE MY_TABLE;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启用外键约束检查

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

我更喜欢暂时禁用外键约束来删除/重新创建它们.


Ale*_*dov 0

如果您想要更好地截断所有表,我认为删除并使用之前提取的数据库模式创建数据库。或者您可以使用同一数据库的两个副本 - 测试和空。填充表后,只需删除测试数据库并将空复制到测试即可。