如何从另一个SQLite表的整个内容更新一个SQLite表的子集?

时间:2011-04-28 02:57:51

标签: sql sqlite

我有一个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命令来一次性执行此操作?如果有帮助,您可以调用uidwxyz两个表格中的字段,其中uid为唯一的主键。

2 个答案:

答案 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; 

......应该有用。