Update

SQLITE3 命令行工具 SQL UPDATE 查詢語法問題

  • March 22, 2018

我有兩個具有相同表結構的數據庫

Dest.db = 主要 Source.db = src

該表被稱為

色帶

colorramp的結構是

身份證 | 姓名 | xml | 最喜歡的

![1]](https://i.stack.imgur.com/LriO0.jpg)

main.colorramp 需要使用來自 src.colorramp WHERE name=name 的項目進行更新。(所以我不想使用 ID 或 PRIMARYKEY)

我有一個如下所示的 sql 查詢。

UPDATE colorramp 
SET colorramp.xml=(SELECT s1.xml FROM src.colorramp s1 WHERE colorramp.name=s1.name),
SET colorramp.favorite=(SELECT s1.favorite FROM src.colorramp s1 WHERE s1.name=colorramp.name)

但我不斷收到以下錯誤。

$$ Error: near “.":syntax error $$ 非常感謝幫助。

問題是您使用的是表名 ( SET colorramp.xml=...)。這是不允許的;只是使用SET xml=...

無論如何,整個語句可以簡化:

UPDATE main.colorramp
SET (xml, favorite) = (SELECT xml, favorite
                      FROM src.colorramp
                      WHERE main.colorramp.name = src.colorramp.name);

引用自:https://dba.stackexchange.com/questions/201887