【发布时间】:2023-03-10 20:21:02
【问题描述】:
附加第二个数据库后,我尝试使用 ON CONFLICT(id) DO UPDATE 在第一个数据库的表中插入和更新数据。字段 id 是第一个表的主键。
FDQuery1.EXECSQL('ATTACH ''D:\Update2019.DB'' AS DBUpdate');
FDQuery1.SQL.Text:=
'INSERT INTO acts (id,title) SELECT id,title FROM DBUpdate.acts'+
' WHERE (DBUpdate.acts.id >100)'+
' ON CONFLICT(id) DO UPDATE SET'+
' title=excluded.title;'
FDQuery1.ExecSQL;
我收到错误消息:““ON”附近的错误:语法错误” 当我删除 WHERE (DBUpdate.acts.id >100 条件 错误消息为:““DO”附近的错误:语法错误”。
同样的查询在 SQLITESTUDIO 中也能正常工作。
【问题讨论】:
-
您的 SQLite 版本是否至少为 3.24.0?
-
delphi 10.3.1如何获取sqlite版本
-
版本是 3.23.1 - 我如何将版本更改为 3.24 或 delphi 10.3.1 中的最新版本
标签: sqlite delphi firedac delphi-10.3-rio