我有一個我備份的數據庫。現在我試圖從原始數據庫中刪除所有內容並將其恢復爲空狀態。因爲它是一個關係數據庫,它有關鍵的限制。有沒有我可以使用的工具?清空關係數據庫模式
回答
最簡單的方法可能是禁用外鍵檢查,然後截斷表格。由於外鍵已禁用,因此截斷表的順序無關緊要。
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. 存在關係的空mysql數據庫
- 4. 關於關係數據庫模式的建議
- 5. 圖數據庫vs關係數據庫時空複雜
- 6. 數據庫關係
- 7. 關係數據庫
- 8. 數據庫關係
- 9. 數據庫關係
- 10. 數據庫模型依賴關係
- 11. MVC模型與關係數據庫
- 12. 建模通用關係數據庫
- 13. 建模:Xml與關係數據庫
- 14. 使用UML建模數據庫:關係
- 15. 數據庫關係建模 - sqlite
- 16. 使用XML模擬關係數據庫
- 17. Zend模型和數據庫關係
- 18. 非關係數據庫建模工具?
- 19. 用於描述關係數據庫模式的標準數據庫中立XSD
- 20. 最好的方式來建模SQL關係數據庫中的依賴關係
- 21. 正確的方式關係數據庫
- 22. 如何在關係數據庫中建模這個關係?
- 23. 關係數據庫模型與關係表?
- 24. 對象數據庫關係數據庫
- 25. 數據庫結構關係數據庫
- 26. 關係數據庫或NoSQL數據庫
- 27. 關係數據庫一對多關係
- 28. 關係數據庫中的關係「OR」
- 29. 學說不會生成數據庫模式ManyToMany關係
- 30. 數據庫模式 - 拆分表而不是有關係
我不知道一個工具可以做到這一點,但它可能沒有必要。訣竅是按照正確的順序從表中刪除。我曾經不得不在Oracle中這樣做。 Oracle擁有自己的表格,其中包含有關我創建的表格之間所有關係的信息。通過查詢這個metatable,我能夠得到正確的關係排序,以便刪除而不會觸及關鍵的違反條約(我作爲評論發佈,因爲我不知道這是否可能在MySQL中)。另一個(和更快的運行)選項是禁用約束,截斷,重新啓用約束。 – FrustratedWithFormsDesigner 2010-12-15 15:40:25