这个表有一个名为idcolumn的主键列和另一个名为datacolumn的int列。
它已经存在一行:
idcolumn=2
datacolumn=1我执行以下语句:
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中也是如此。
相关问题:
发布于 2014-10-23 11:22:48
idcolumn=2匹配一行,并且它将被更新,而不管它是否实际需要更新。因此,您将得到1作为更新的计数。
如果您的数据没有更改,请不要将其写入数据库。跟踪Java代码中的更改,例如,向保存要写入的数据的POJO添加一个"isDirty“布尔标志,当在setter中检测到更改时,将对象设置为脏,如果对象是脏的,则只更新到磁盘(数据库)。
https://stackoverflow.com/questions/26526852
复制相似问题