我有一个我备份的数据库。现在我试图从原始数据库中删除所有内容并将其恢复为空状态。因为它是一个关系数据库,它有关键的限制。有没有我可以使用的工具?清空关系数据库模式
回答
最简单的方法可能是禁用外键检查,然后截断表格。由于外键已禁用,因此截断表的顺序无关紧要。
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';
感谢您的帮助。解决了这个问题。 – 2010-12-17 01:59:23
您可以临时删除或禁用所有约束,截断所有表,然后恢复约束。我已经采取了这种方法的SQL Server,它工作正常。
http://lists.mysql.com/mysql/194954
也许一个更好的办法是逆向挤出架构成脚本(你把版本控制之下),然后从头开始重新创建数据库。
Thanks.I将尝试这些解决方案。 – 2010-12-15 16:11:46
谢谢,解决了这个问题。 – 2010-12-17 01:59:38
- 1. 数据库关系模式
- 2. 关系数据库建模
- 3. 关系数据库模型
- 4. 关系数据库模式 - 关系键和外键
- 5. 数据关系模式
- 6. 存在关系的空mysql数据库
- 7. 关于关系数据库模式的建议
- 8. 图数据库vs关系数据库时空复杂
- 9. 数据库关系
- 10. 数据库关系
- 11. 数据库关系
- 12. 关系数据库
- 13. 建模通用关系数据库
- 14. 数据库关系建模 - sqlite
- 15. 使用XML模拟关系数据库
- 16. Django关系数据库模型
- 17. 使用UML建模数据库:关系
- 18. Yii框架数据库关系模型
- 19. 非关系数据库建模工具?
- 20. 建模:Xml与关系数据库
- 21. 数据库模型依赖关系
- 22. MVC模型与关系数据库
- 23. Zend模型和数据库关系
- 24. 用于描述关系数据库模式的标准数据库中立XSD
- 25. 用于数据库模式关系和常规关系的工具
- 26. 最好的方式来建模SQL关系数据库中的依赖关系
- 27. 正确的方式关系数据库
- 28. 将关系数据库(OLTP)转换为数据仓库模型
- 29. MySql |关系数据库vs非关系数据库的性能
- 30. 转换关系数据库模型的核心数据模型
我不知道一个工具可以做到这一点,但它可能没有必要。诀窍是按照正确的顺序从表中删除。我曾经不得不在Oracle中这样做。 Oracle拥有自己的表格,其中包含有关我创建的表格之间所有关系的信息。通过查询这个metatable,我能够得到正确的关系排序,以便删除而不会触及关键的违反条约(我作为评论发布,因为我不知道这是否可能在MySQL中)。另一个(和更快的运行)选项是禁用约束,截断,重新启用约束。 – FrustratedWithFormsDesigner 2010-12-15 15:40:25