insert into、insert ignore,replace into,on duplicate key update四条语句解决唯一键约束报错,使用区别

本文深入解析MySQL中的四种数据操作方式:insertinto、replaceinto、insertignoreinto与ONDUPLICATEKEYUPDATE的区别及应用场景。通过对比,帮助读者理解如何根据业务需求选择合适的数据操作策略。

说明

当mysql数据包设置unique 或者primary key时,被约束的字段就必须是唯一的。新插入的数据如果发现冲突,就会抛出异常。

四条插入语句

  • insert into表示插入数据,数据库会检查主键,如果出现重复会报错;
  • replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,删除旧数据,插入新数据,如果没有数据效果则和insert into一样;
  • insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
  • ON DUPLICATE KEY UPDATE 关注非主键列,注意与ignore的区别。有则更新指定列,无则添加。

使用场景

如果发生约束建重复时:
1,要捕获异常,则选用insert into
2, 想要删除老的数据,插入新数据,则选用 replace into
3, 想要保存老数据,忽略新数据,则选用 insert ignore into
4 , 想要更新老数据中的某几列,其他列不变化,则选用 ON DUPLICATE KEY UPDATE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值