4
A
回答
5
db.tables()
將返回所有表的數據庫名稱的列表db
所以,你可以這樣做:
for table_name in db.tables():
db[table_name].drop()
db.commit()
(最終db.commit()
只是必要的,如果web2py中沒有提交你的DAL例如從命令行界面自動更改。)
+0
在我的用例中,我需要在模式更改後重新填充數據庫(使用db_wizard_populate.py)。爲此,不需要「drop()」,而是「truncate()」。 – 2011-06-06 03:53:50
0
上一個答案有一個問題 - 如果您使用多個d atabase,如果您發生剪切粘貼錯誤,您可能會意外地從錯誤的數據庫中刪除表。示例 -
for table_name in db_one.tables():
db_two[table_name].drop()
如果從一個模型或應用程序複製到另一個代碼,實在是太容易編輯一個dB參考,而不是其他。如果db_two具有名稱與db_one中的某些表匹配的表,則可以在錯誤的數據庫中刪除表。最好寫一個以db爲參數的簡單函數 -
def dropdb(thedb):
for table_name in thedb.tables():
thedb[table_name].drop()
「不要重複你自己」。
相關問題
- 1. 從SQL Server數據庫中的所有表數據刪除,除了一些表
- 2. 從數據庫的所有表中刪除所有記錄
- 3. 從數據庫的所有表中刪除所有行
- 4. 刪除庫中的所有數據集
- 5. 從包含表的所有數據庫中的表中刪除
- 6. 在一個數據庫中所有表
- 7. 從mysql數據庫的所有表中刪除一條記錄
- 8. 一次性刪除數據庫中的所有表格
- 9. 在一條語句中查詢數據庫中的所有表和列
- 10. 刪除CockroachDB中的數據庫中的所有表
- 11. 刪除所有數據庫下有一定數量的表
- 12. 從sqlite數據庫中的表中刪除所有記錄
- 13. 如何從數據庫表中刪除所有數據?
- 14. 從一個重複的數據表中刪除所有行
- 15. 有沒有辦法從一個數據庫中刪除'sysmessages'表?
- 16. mysql根據select語句從同一個表中刪除
- 17. 如何返回函數中刪除的行數(刪除所有語句)?
- 18. 通過SQL語句在Delphi中刪除數據庫和adoquery
- 19. 在同一語句中從兩個表中刪除SQL
- 20. 從Sugar ORM中刪除所有表中的所有數據
- 21. 從SQLite數據庫表中刪除所有錶行
- 22. 如何刪除數據庫中的所有表?
- 23. 如何刪除SQL Server數據庫中的所有表?
- 24. 誰刪除了mysql數據庫中的所有表格
- 25. 如何使用SqlCommand刪除數據庫中的所有表?
- 26. 刪除表中不在刪除語句中的記錄?
- 27. Linq刪除所有語句的結果
- 28. MySQL的程序來刪除數據庫中的所有數據
- 29. rake db:reset刪除所有表,但不刪除數據庫
- 30. 刪除SQL Server數據庫中的所有數據
什麼是您的數據庫後端? – ChristopheD 2011-01-08 14:24:00