我有这个SQL查询
bd.replace(TABLE,NULL,CV);
其中cv是{_id = 1,column1 = x,column3 = z}; //注意没有column2
TABLE具有以下方案:
_id(作为PRIMARY KEY)| column1(作为TEXT)| column2(作为TEXT)| column3(作为TEXT)
在运行查询之前我已经使用以下值注册_id = 1(_id = 1,column1 = a,column2 = b,column3 = c)所以在运行查询后我得到了 (_id = 1,column1 = x,column2 = null,column3 = z)为什么不将column2保持为b?
¿有人知道如何保持这个价值,就像以前一样吗?
重要提示:我使用replace becouse我需要插入一个新行,以防它不存在。
提前感谢
答案 0 :(得分:0)
解决方案:
我知道发生了什么。
根据sqlite docs首次更新行时,由于我将column2等于null,所以删除了该行,
我也有这个走动:
long id=bd.insert(TABLE, null,cv);
if(id==-1) {
int idrow=(Integer) cv.get("_id");
cv.remove("_id");
bd.update(TABLE,cv,"_id=?",new String[]{String.valueOf(idrow)});
}
如果有人知道更好的事情,请重播这篇文章。
感谢