我有一个SQLite表,在特定点之前必须保持不变。对记录的任何挂起更改都存储在具有相同字段的第二个表中。我想用伪代码做的是:
for each record U in secondTable
find record R in firstTable, where R.uid = U.uid
replace all fields in record R with those in record U
有没有办法用一条UPDATE命令来一次性执行此操作?如果有帮助,您可以调用uid
,w
,x
,y
和z
两个表格中的字段,其中uid
为唯一的主键。
答案 0 :(得分:2)
INSERT OR REPLACE into firstTable (uid, w, x, y, z)
SELECT uid, w, x, y, z FROM secondTable
如果您说uid
是主键,则将起作用。
REPLACE
冲突解决方案已记录在案here
答案 1 :(得分:1)
此:
UPDATE R
SET R.w = U.w,
R.x = U.x,
R.y = U.y,
R.z = U.z
WHERE R.uid = U.uid;
......应该有用。