簡體   English   中英

從所有表中刪除條目

[英]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)生成表,因此我認為可以通過以下方式解決此問題:

  1. 以編程方式刪除數據庫並創建一個具有相同名稱的新數據庫
  2. 調用models.py腳本在數據庫中生成空表
  3. 使用我編寫的腳本插入示例數據

這是一個好的解決方案還是我忽略了什么?

歸檔內容后,我每月使用腳本清除交易表。

嘗試使用“ truncate”命令,即。

截斷表[tablename];

它將自動重置主鍵的計數器(自動遞增)。 然后使用您的插入語句來填充基本信息。

此外,這將保留所有表基礎設置(鍵,索引等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM