繁体   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