怎么实现sqlite更新数据库表,数据存在则更新,没有则插入,数据库原来有但是新的数据没有则删除原数据

重点是怎么删除。比如本地一张表中存放的缓存数据,服务器的数据变化了,本地更新缓存的时候获取服务器数据,如果本地数据有这条数据就更新,没有就插入,如果本地有一条数据是服务器... 重点是怎么删除。比如本地一张表中存放的缓存数据,服务器的数据变化了,本地更新缓存的时候获取服务器数据,如果本地数据有这条数据就更新,没有就插入,如果本地有一条数据是服务器数据库中所没有的,就从本地把这条数据删除。怎么实现? 展开
 我来答
匿名用户
推荐于2017-11-21
展开全部
假设A是本地表,B是服务器的表,主键是KEY
//从A中删除B表中没有的数据

DELETE FROM A WHERE A.KEY NOT IN (SELECT B.KEY FROM B)
//按照B的数据更新(或插入)A
INSERT OR REPLACE INTO A(KEY, Column1) SELECT B.Key,B.Column1 FROM B WHERE B.KEY=A.KEY
更多追问追答
追问
多谢您的思路,再劳烦问一下,如果获取服务器的数据返回json,解析成list之后该怎么实现上述删除的功能?就是这句DELETE FROM A WHERE A.KEY NOT IN  后面的条件应该是什么呢?
追答
在旧list中循环每一条,如果此条数据无法在新list中找到,说明被删除了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式