replace语句和update语句有相似的地方, 但是也有很多不同之处。
1. replace语句会删除原有的一条记录, 并且插入一条新的记录来替换原记录。
2. 一般用replace语句替换一条记录的所有列, 如果在replace语句中没有指定某列, 在replace之后这列的值被置空 。
3. replace根据主键确定被替换的是哪一条记录
4. replace语句不能根据where子句来定位要被替换的记录
5. 如果执行replace语句时, 不存在要替换的记录, 那么就会插入一条新的记录。
6. 如果新插入的或替换的记录中, 有字段和表中的其他记录冲突, 那么会删除那条其他记录。
replace语句和update语句的对比
对于update语句, 因为经常使用到,应该算比较熟悉。 下面对比一下update和replace语句的行为, 只是简单陈述, 不再以具体实例说明。
update语句使用where子句定位被更新的记录;
update语句可以一次更新一条记录, 也可以更新多条记录, 只要这多条记录都复合where子句的要求;
update只会在原记录上更新字段的值, 不会删除原有记录, 然后再插入新纪录;
如果在update语句中没有指定一些字段, 那么这些字段维持原有的值, 而不会被置空;
原文链接:https://www.f2er.com/sqlite/200246.html