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

如何在Python中设置SQLite的TEMP_STORE为3以使用内存存临时文件

解决SQLite临时文件内存存储的问题

你遇到的错误是因为pragma_compile_options是只读视图,它展示的是SQLite编译时固化的配置参数,根本无法通过UPDATE语句修改。要让SQLite用内存存储临时文件,不需要修改编译选项,直接在运行时设置会话级的PRAGMA参数即可,有两种简单方法:

方法1:连接时通过URI参数指定

使用URI格式连接数据库,直接在连接字符串中设置temp_store=3(3对应"始终使用内存"的行为):

import sqlite3
# 启用URI模式并设置临时存储为内存
conn = sqlite3.connect("file:test.db?temp_store=3", uri=True)
cur = conn.cursor()

# 验证设置是否生效
temp_store_value = conn.execute("PRAGMA temp_store;").fetchone()[0]
print("当前temp_store值:", temp_store_value)  # 输出应为3

方法2:运行时执行PRAGMA命令设置

连接数据库后,执行PRAGMA temp_store = 3;来临时覆盖临时存储行为:

import sqlite3
conn = sqlite3.connect("test.db")
cur = conn.cursor()

# 设置临时存储为始终内存
conn.execute("PRAGMA temp_store = 3;")

# 验证设置
temp_store_value = conn.execute("PRAGMA temp_store;").fetchone()[0]
print("当前temp_store值:", temp_store_value)  # 输出应为3

补充说明

  • temp_store参数的取值对应:0=默认行为,1=强制用文件,2=优先用内存,3=始终用内存(和你想要的SQLITE_TEMP_STORE=3行为一致)
  • 以上两种设置都是会话级的,每次新建数据库连接都需要重新设置,因为编译时的SQLITE_TEMP_STORE是固定值,无法在运行时修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:01:08