replace into 和 insert on update的区别

目录

相同点

不同点

注意点


replace into 与 insert into on duplicate key update有什么区别?使用需要注意什么?

相同点

当没有key(主键或唯一key)冲突时,replace into和insert into on duplicate key update一样的,相当于普通的insert

当有key冲突的时候,auto_increment都会自动+1

 

不同点

当与key冲突时,replace可以理解为删除重复key的记录,新插入一条记录,如果replace语句的字段不全的话,有些原有的未写入replace语句的字段的值会被自动填充为默认值,如果有自增id的话,自增id会变化为最新的值

当与key冲突时,insert into on duplicate key update只update相应字段值,其余字段的值不会受到影响

 

注意点

1.使用replace时,要考虑写全字段,否则可能导致其余字段的值被覆盖,其次如果是以自增id为业务标志的话可能导致记录丢失

2.使用replace本质为delete + insert,相对于insert on duplicate key update,会多一倍的写操作,当重复数据非常多时(比如超过50%),代价很高

3.使用insert on duplicate key update 触发更新也会auto_increment+1,可能导致自增id不连续,和数据库参数配置有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值