cleardb.py 1015 B

12345678910111213141516171819202122232425262728293031323334
  1. import sqlite3
  2. conn = sqlite3.connect('db.sqlite3')
  3. cursor = conn.cursor()
  4. try:
  5. # 禁用外键约束
  6. cursor.execute("PRAGMA foreign_keys = OFF")
  7. # 获取所有表名
  8. cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';")
  9. tables = cursor.fetchall()
  10. print(f"找到 {len(tables)} 张表: {[t[0] for t in tables]}") # 打印表名
  11. # 删除所有表数据
  12. for table in tables:
  13. table_name = table[0]
  14. print(f"正在清空表: {table_name}") # 调试信息
  15. cursor.execute(f"DELETE FROM {table_name}")
  16. print(f"已删除 {cursor.rowcount} 行数据") # 检查是否删除成功
  17. # 可选:重置自增主键
  18. cursor.execute("DELETE FROM sqlite_sequence")
  19. # 启用外键约束
  20. cursor.execute("PRAGMA foreign_keys = ON")
  21. conn.commit()
  22. print("数据已清空!")
  23. except Exception as e:
  24. print(f"发生错误: {e}")
  25. conn.rollback()
  26. finally:
  27. conn.close()