You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite删除语句在DB Viewer生效但Python执行无效果问题排查

问题原因与解决方法
  • 核心原因:Python的sqlite3模块默认启用事务机制,执行execute()后,删除操作会被暂存到事务中,若不手动提交,数据库不会持久化这些修改,导致看起来没生效。而DB Browser for SQLite执行语句时默认自动提交事务,所以能正常生效。
  • 解决办法:
    1. 执行删除语句后,显式调用连接对象的commit()方法提交事务:
      connection.execute("DELETE FROM ticket WHERE ROWID = (SELECT MAX(ROWID) FROM ticket)")
      connection.commit()  # 必须添加此行完成事务提交
      
    2. 或者在创建数据库连接时开启自动提交模式:
      connection = sqlite3.connect('你的数据库文件.db', isolation_level=None)
      
      开启自动提交后,每次execute()执行的修改都会立即生效,无需手动调用commit()。
  • 验证方式:执行删除后,可先查询SELECT MAX(ROWID) FROM ticket,若提交前结果未变化、提交后才更新,即可确认是事务未提交导致的问题。

内容的提问来源于stack exchange,提问作者user3617217

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:42:00