首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlite:仅当行发生更改时才替换或更新行

Sqlite:仅当行发生更改时才替换或更新行
EN

Stack Overflow用户
提问于 2018-02-14 23:53:49
回答 1查看 945关注 0票数 1

Objective-C iOS应用程序将一个sqlite与一组行集成在一起,每行由一个ID标识。例如:

代码语言:javascript
复制
| id | user_name |  age   |
------------------------------
|  1 |   johnny  |  33    |
|  2 |    mark   |  30    |
|  3 |  maroccia |  50    |

异步地,应用程序接收相同的一组记录,但其中一些记录已被修改:它必须仅更新(或替换)已修改的记录,忽略其他记录(未修改的记录)。

例如,应用程序接收到以下更新的行:

代码语言:javascript
复制
| id | user_name |  age   |
------------------------------
|  1 |   johnny  |  33    |
|  2 |    mark   |  30    |
|  3 |  ballarin |  50    |  <------ CHANGED RECORD

在这种情况下,只有第三条记录被更改,应用程序应该只更新或替换它,忽略前两条记录。显然,INSERT或REPLACE不适合我,因为它将写入所有记录。那么,在sqlite (或Objective-C)中有一些过程可以帮助我,只更新修改过的记录吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-02-15 02:37:04

您可以简单地替换所有行;结果是相同的。

如果不想重写实际未更改的行,则必须比较所有列值。如果旧行和接收到的行都位于不同的表中,则可以使用compound query比较整个行

代码语言:javascript
复制
INSERT OR REPLACE INTO MyData
SELECT * FROM ReceivedData
EXCEPT
SELECT * FROM MyData;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48791221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档