我有一个我备份的数据库。现在我试图删除原始数据库中的所有内容并将其恢复为空状态。因为它是关系数据库,所以它具有关键约束。我可以使用任何工具吗?
答案 0 :(得分:7)
最简单的方法是禁用外键检查,然后截断表。由于禁用了外键,因此截断表的顺序无关紧要。
set foreign_key_checks = 0;
truncate table parent;
truncate table child;
truncate table ...
您甚至可以使用information_schema为您生成truncate table语句。像这样:
select concat('truncate table ',table_schema,'.',table_name,';') as sql_stmt
from information_schema.tables
where table_schema = 'your_schema_name'
and table_type = 'base table';
答案 1 :(得分:2)
您可以暂时删除或禁用所有约束,截断所有表,然后恢复约束。我已经为SQL Server采用了这种方法,它运行正常。
http://lists.mysql.com/mysql/194954
或许更好的方法是将模式转换为脚本(您置于版本控制之下),然后从头开始重新创建数据库。