You need to enable JavaScript to run this app. 使用Python sqlite3插入数据后DB Browser for SQLite无数据显示
优惠活动
大模型
产品
解决方案
定价
更多

使用Python sqlite3插入数据后DB Browser for SQLite无数据显示

问题原因

你遇到的问题是SQLite默认需要手动提交事务,DML(数据操纵语言,如INSERT、UPDATE、DELETE)类操作执行后,仅保存在内存缓存中,没有调用提交方法的话不会写入磁盘数据库文件,程序退出后操作会自动回滚。而CREATE TABLE属于DDL(数据定义语言),SQLite会对这类语句自动提交,所以你能看到表结构但看不到插入的数据。

解决方案
  • 方案1:手动提交事务
    执行完插入操作后显式调用commit()方法,操作完成后关闭数据库连接,修改后代码如下:
import sqlite3 as sql

connection = sql.connect("points.db")
cursor = connection.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS servers (server_id TEXT, name TEXT, exp INTEGER)")
cursor.execute("INSERT INTO servers VALUES ('848117357214040104', 'brknarsy', 20)")
# 新增提交语句
connection.commit()
# 操作完成后关闭连接
connection.close()
  • 方案2:开启自动提交
    连接数据库时设置isolation_level=None开启自动提交模式,不需要手动调用commit:
import sqlite3 as sql

# 开启自动提交
connection = sql.connect("points.db", isolation_level=None)
cursor = connection.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS servers (server_id TEXT, name TEXT, exp INTEGER)")
cursor.execute("INSERT INTO servers VALUES ('848117357214040104', 'brknarsy', 20)")
connection.close()

注意:自动提交模式下所有操作执行后直接写入磁盘,批量操作时性能会低于手动提交,且出现错误时无法回滚修改,更推荐使用手动提交的方式。

  • 方案3:使用上下文管理器自动处理提交和回滚
    Python的sqlite3连接支持上下文管理器,会在代码块正常执行完成后自动提交,出现异常时自动回滚,无需手动处理提交和关闭逻辑:
import sqlite3 as sql

with sql.connect("points.db") as connection:
    cursor = connection.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS servers (server_id TEXT, name TEXT, exp INTEGER)")
    cursor.execute("INSERT INTO servers VALUES ('848117357214040104', 'brknarsy', 20)")

修改代码执行后,记得在DB Browser for SQLite中刷新数据库或者重新打开数据库文件,避免工具缓存导致看不到最新写入的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 22:15:03