sqlite的insert or update实现

通常需要插入一个记录的时候我们需要先判断在表中是否已经存在,如果存在则直接更新这条记录。
一半情况下我们会做两步操作,先通过select语句查询符合条件的记录条数,如果大于或等于1则代表记录存在。如果记录存在则使用update语句进行更新操作。

今天发现sqllite里面多少个replace的命令,可以用来替换已存在的记录。

INSERT OR REPLACE INTO MESSAGEINFO(id,userId,contentId,contentType,title,content,createTime,nickname,headImg)VALUES(?,?,?,?,?,?,?,?,?);

这个语句的作用是插入一记录,如果已存在则替换

但是使用的时候我们可能会遇到一个问题,当我们需要保留一些字段的值的时候,也就是局部更新,我们需要用下面的语句来实现

INSERT OR REPLACE INTO MESSAGEINFO(id,userId,contentId,contentType,title,content,createTime,nickname,headImg,readed)VALUES(?,?,?,?,?,?,?,?,?,(select readed from MESSAGEINFO where id = ?));

–每天一点点

评论已关闭。