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

MySQL、软件编程、后端开发、软件开发、码农、计算机软件、IT、数影内容数据,但业务上如果发现存在了你想自己更像数据,不想唯一约束异常传统办法

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

业务场景

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

语法说明

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

修改为

replace into table(… , …) values(… , …)

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

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

唯一索引Sname

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

例子

  • 注意执行SQL后影响2行
Mysql中超级简洁语法replace into存在就更新,偷懒就这么简单

  • 执行钱主键23
Mysql中超级简洁语法replace into存在就更新,偷懒就这么简单

  • 执行后主键变24
Mysql中超级简洁语法replace into存在就更新,偷懒就这么简单

  • replace info对应那些没赋值的列,MySQL会自动赋上默认值
Mysql中超级简洁语法replace into存在就更新,偷懒就这么简单

其实还有另外一种办法

总结

  • 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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5937.html

(0)
上一篇 2022-12-14 13:23
下一篇 2022-12-14 16:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信