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

Python3操作SQLite3无法将数据持久化写入磁盘问题求助

问题解决:Python操作SQLite数据未写入磁盘的原因

你遗漏了事务提交步骤。SQLite的Python sqlite3 模块默认会开启事务,所有写入类操作(如INSERT、CREATE TABLE)都需要手动提交才能真正持久化到磁盘文件。

修改方案

在执行完所有写入操作后,调用connection.commit()提交事务即可。修改后的代码如下:

import sqlite3

connection = sqlite3.connect("aquarium.db")
print(connection.total_changes)
cursor = connection.cursor()
cursor.execute("CREATE TABLE fish (name TEXT, species TEXT, tank_number INTEGER)")
print(connection.total_changes)
cursor.execute("INSERT INTO fish VALUES ('Sammy', 'shark', 1)")
cursor.execute("INSERT INTO fish VALUES ('Jamie', 'cuttlefish', 7)")
# 提交事务,将内存中的修改写入磁盘
connection.commit()
print(connection.total_changes)
rows = cursor.execute("SELECT name, species, tank_number FROM fish").fetchall()
print(rows)
connection.close()

原因说明

首次运行时,你执行的插入和建表操作仅存在于当前连接的内存事务中,未提交的事务会在连接关闭时自动回滚,因此磁盘文件中不会保留这些数据。第二次运行时自然查询不到任何内容。加上commit()后,事务会被持久化到磁盘,后续再运行查询代码就能获取到之前插入的数据。

内容的提问来源于stack exchange,提问作者M.Schnick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:15:32