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

如何获取SQLite数据表列的默认值?查询返回空数组问题

问题原因与解决方案

你遇到的问题核心很清晰:表列的默认值是列的属性,只有当表中存在行数据时,未指定值的列才会自动填充默认值。你的TAXRatesDB表目前没有任何行,所以SELECT *返回空数组[]是完全正常的。

下面提供两种获取默认值的可行方法:

方法1:插入空行触发默认值填充

通过插入一行不指定任何列值的记录,数据库会自动用预设的默认值填充所有列,之后就能查询到目标值:

# 插入空行,所有列使用默认值
pC.execute("""INSERT INTO TAXRatesDB DEFAULT VALUES""")
# 提交事务(SQLite必须执行此步骤才会将写入操作持久化)
conn.commit()

# 再次查询获取默认值
pC.execute("""SELECT * FROM TAXRatesDB""")
taxrates = pC.fetchall()
print(taxrates)

方法2:直接查询表元数据获取默认值

如果不想插入数据,可以通过数据库的系统元数据直接读取列的默认值(以SQLite为例,使用PRAGMA table_info命令):

# 查询表的列信息
pC.execute("PRAGMA table_info(TAXRatesDB)")
column_info = pC.fetchall()

# 提取列名与对应的默认值
default_values = {col[1]: col[4] for col in column_info}
print(default_values)

执行后会返回类似这样的字典结果:

{'PROVrate': 0.02, 'UNIONrate': 0.05, 'LNRrate': 0.09, 'MEDICblrate': 0.02, 'MEDICabrate': 1600}

内容的提问来源于stack exchange,提问作者Jansen Lloyd Macabangun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:03:30