我正在编写一个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),所以我认为我可以通过以下方式解决这个问题:
这是一个很好的解决方案还是我忽略了什么?
发布于 2013-05-02 12:45:51
在归档内容之后,我每月使用脚本来清除事务表。
尝试使用“截断”命令,即。
截断表名;
它自动重置主键的计数器(自动增量).然后使用insert语句填充基本信息。
此外,这保留了所有的表基设置(键、索引、.)。
https://stackoverflow.com/questions/16304181
复制相似问题