[英]Removing entries from all tables
我正在編寫一個python腳本,它將數據庫重置為初始狀態(每個表中都有一些硬編碼的條目)。 該數據庫由具有主鍵和外鍵的多個表組成。
每次我運行腳本時,它都應該刪除所有表中的所有舊條目,重置主鍵計數器並插入示例條目。
目前,我正在嘗試實現以下目標:
# Delete all the entries from the tables
cursor.execute("DELETE FROM table1")
cursor.execute("DELETE FROM table2")
cursor.execute("DELETE FROM table3")
# Reset the primary key counter and insert sample entries
cursor.execute("ALTER TABLE table1 AUTO_INCREMENT = 1")
cursor.execute("INSERT INTO table1(username, password) VALUES('user01', '123')")
cursor.execute("ALTER TABLE table2 AUTO_INCREMENT = 1")
cursor.execute("INSERT INTO table2(column1, column2) VALUES('column1_data', 'column2_data')")
由於某些表中存在外鍵,因此無法正常工作(不允許我刪除外鍵)。
我使用models.py腳本(也使用Django)生成表,因此我認為可以通過以下方式解決此問題:
這是一個好的解決方案還是我忽略了什么?
歸檔內容后,我每月使用腳本清除交易表。
嘗試使用“ truncate”命令,即。
截斷表[tablename];
它將自動重置主鍵的計數器(自動遞增)。 然后使用您的插入語句來填充基本信息。
此外,這將保留所有表基礎設置(鍵,索引等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.