繁体   English   中英

清空关系数据库模式

[英]Empty a relational database schema

我有一个我备份的数据库。 现在我试图删除原始数据库中的所有内容并将其恢复为空状态。 因为它是关系数据库,所以它具有关键约束。 我可以使用任何工具吗?

最简单的方法是禁用外键检查,然后截断表。 由于禁用了外键,因此截断表的顺序无关紧要。

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';

您可以暂时删除或禁用所有约束,截断所有表,然后恢复约束。 我已经采用这种方法的SQL Server,它工作正常。

http://lists.mysql.com/mysql/194954

也许更好的方法是将模式转换为脚本(您置于版本控制之下),然后从头开始重新创建数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM