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

SQLite执行UPDATE更新语句后表数据未保存问题求助

问题根因
  • 核心错误为UPDATE语句的SET子句语法使用错误:多字段赋值需要用逗号分隔,而非AND关键字。
    你编写的SET commission = 0.690000 AND price = 165.000000会被SQLite解析为:

先计算布尔表达式 0.690000 AND price = 165.000000 的结果,再将该布尔值赋值给commission字段,完全不会修改price字段的取值。

SQLite中布尔真值对应数值1、假值对应数值0,正好匹配你查询结果里commission仍为1、price仍为155的现象。

修复方案

将SET子句中的AND替换为逗号即可,正确写法如下:

UPDATE services 
SET commission = 0.690000, price = 165.000000 
WHERE location = "City" 
  AND service = "Board";

执行上述语句后就能同时更新两个字段的取值。

额外排查点

如果修改语法后数据仍未持久化到磁盘,可检查代码逻辑:PyQt的QSqlDatabase默认开启手动提交模式,执行增删改操作后需要调用db.commit()才能将修改真正写入数据库。
建议执行SQL后捕获返回的错误信息,可快速定位这类语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:00:04