首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlite中的Update语句,该语句不进行实际更改,报告已更新的行

Sqlite中的Update语句,该语句不进行实际更改,报告已更新的行
EN

Stack Overflow用户
提问于 2014-10-23 11:17:26
回答 1查看 208关注 0票数 0

这个表有一个名为idcolumn的主键列和另一个名为datacolumn的int列。

它已经存在一行:

代码语言:javascript
复制
idcolumn=2
datacolumn=1

我执行以下语句:

代码语言:javascript
复制
ContentValues cv = new ContentValues();
cv.put("datacolumn", 1);  
int count = db.update("mytable", cv, "idcolumn=2", null);

结果是count=1,即使没有更改任何行。

如果我重复这个语句,结果是相同的:count=1

我需要知道一个任意的update语句何时真的会对我的同步框架进行更改,以便将行标记为已更改。

怎么做呢?

不管有没有交易我都试过了。结果是相同的,在Android 4.4.2中也是如此。

相关问题:

EN

回答 1

Stack Overflow用户

发布于 2014-10-23 11:22:48

idcolumn=2匹配一行,并且它将被更新,而不管它是否实际需要更新。因此,您将得到1作为更新的计数。

如果您的数据没有更改,请不要将其写入数据库。跟踪Java代码中的更改,例如,向保存要写入的数据的POJO添加一个"isDirty“布尔标志,当在setter中检测到更改时,将对象设置为脏,如果对象是脏的,则只更新到磁盘(数据库)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26526852

复制
相关文章

相似问题

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