我正在编写一个python脚本,将数据库重置为初始状态(每个表中的一些硬编码条目)。 db包含多个具有主键和外键的表。
每次运行脚本时,都应删除所有表中的所有旧条目,重置主键计数器并插入样本条目。
目前我正在尝试这样做:
# 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),所以我想我可以通过以下方式解决这个问题:
这是一个很好的解决方案,还是我忽略了什么?
答案 0 :(得分:0)
我在归档内容后每月使用脚本清除事务表。
尝试使用'truncate'命令,即。
截断表[tablename];
自动重置主键的计数器(自动增量)。 然后使用insert语句填充基本信息。
此外,这会保留所有表格基本设置(键,索引,。)。