mysql replace用法_Mysql中超级简洁语法replace into存在就更新,偷懒就这么简单

MySQL、软件编程、后端开发、软件开发、码农、计算机软件、IT、数据库、DBA

业务场景

  • 批量新增电影内容数据,但业务上如果发现存在了你想自己更像数据,不想唯一约束异常
  • 传统办法,是想select判断出是否存在,然后if-else去insert 或update ,这些SQL必须2条,代码复杂,性能也不高。
f14df8d14a6f89a1c1ec91ba713e401c.png

语法说明

  • Mysql replace into用法最简单的一种用法
  • 就是直接将 "insert" 关键字替换为"replace"就可以啦。
  • insert into table(... , ...) values(... , ...)

修改为

replace into table(... , ...) values(... , ...)

学生表,主键ID,唯一索引Sname

d417faade90d3fab554f44cb3b8fb336.png

唯一索引Sname

71805443f9b00abb0d95eb381f092fde.png

例子

  • 注意执行SQL后影响2行
1027b2b39be9f438d73a861b05922c5b.png
  • 执行钱主键23
8d87ebe40a4fa92d10a20f884657674d.png
  • 执行后主键变24
c552561c9c8c4c14310e4e222baccf72.png
  • replace info对应那些没赋值的列,MySQL会自动赋上默认值
a3bc36394c5193820baa0e3f2ad213f1.png

其实还有另外一种办法

总结

  • ON DUPLICATE KEY UPDATE跟replace into比,语法复杂点点
  • ON DUPLICATE KEY UPDATE执行后主键本身不会变化,不破坏索引,性能比replace into 要高
  • replace into会让主键变化,所以业务强依赖索引的就不建议用此方法
  • replace into底层是先删除后插入数据,但需要重新维护索引
  • 必须要有主键或唯一索引才能有效,否则replace into就只新增了

缺点

  • 高并发场景,注意死锁
  • 主键会变化,注意是否影响你的业务

下面是replace into相似功能的文章,有兴趣的看看吧

ON DUPLICATE KEY UPDATE另外的方式

MySQL、软件编程、后端开发、软件开发、码农、计算机软件、IT、数据库、DBA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值