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

含CTE与UPDATE子句的SQLite语句预编译报错但SQLite浏览器可执行

问题原因分析

你遇到的报错核心原因是SQLite版本兼容性问题:

  • SQLite的UPDATE ... FROM多表更新语法,是在3.33.0版本(2020年8月14日发布)才正式引入支持的。
  • 你本地SQLite浏览器内置的SQLite内核版本≥3.33.0,所以能正常执行这条语句;但你的程序中调用的sqlite3库版本低于3.33.0,不支持该语法,因此调用sqlite3_prepare_v2预编译时会触发"near 'FROM': syntax error"的语法错误。

如果需要兼容低版本SQLite,可以将语句改写为子查询形式,例如:

UPDATE itemfield
SET updated_at = (SELECT field_updated_at FROM item WHERE uuid = itemfield.item_uuid),
    value_updated_at = (SELECT field_updated_at FROM item WHERE uuid = itemfield.item_uuid)
WHERE item_uuid IN (
    SELECT DISTINCT item_uuid 
    FROM itemfield 
    WHERE updated_at <= 0 OR value_updated_at <= 0
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:34:57