在数据库中我们经常会遇到这样的问题,插入(更新)一条记录,如果存在,就更新,如果不存在就插入一条新的数据。
sqlite的 replace into可以实现此功能,
首先我们新建一个sqlite数据库,新建一个表(Books),包含字段有ID,Name,Author,PageCount,Mark,其中ID是主键,设置为自动增长
Name 设置为不能为空且唯一
建好表以后如下图:
sqlite的 replace into可以实现此功能,
首先我们新建一个sqlite数据库,新建一个表(Books),包含字段有ID,Name,Author,PageCount,Mark,其中ID是主键,设置为自动增长
Name 设置为不能为空且唯一
建好表以后如下图:
接下来我们执行SQL语句
REPLACE INTO Books(Name,Author,PageCount,Mark) values('C#','Jack',300,'test')
由于是第一次执行,数据库中没有数据,相当于执行了Insert ,执行以后如下图:
修改上面的SQL语句,将PageCount修改为500,再次执行,由于数据库中已经存在了Name相同的数据,这个不在进行插入操作,而是执行更新了
接下来我们执行修改过后的SQL语句
REPLACE INTO Books(Name,Author,PageCount,Mark) values('C#','Jack',500,'test')
执行以后数据如下:
这样,我们是使用SQLite数据库时,可以创建唯一索引,使用replace into 来替代insert和update