暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql新增或修改

码农私塾 2021-09-14
1807

微信公众号:码农私塾
关注可获得更多编程知识分享
如果你觉得文章对你有帮助,欢迎赞赏

目录

新增或修改ON DUPLICATE KEY UPDATE总结

新增或修改

实际工作中经常会有这样的场景,某个数据 如果存在了 就修改 不存在就插入新的值,实现的方式也有多种 可以通过代码 先查询是否存在这个记录 存在进行修改 不存在就是新增 也可以采用sql语句来实现

1if exists (查询数据语句)
2   修改语句
3  else
4    插入语句 

不过这两种方式 在高并发情况下 都会存在问题 都需要事务控制 性能开销会更大

ON DUPLICATE KEY UPDATE

从字面意思也可以看出来 有重复key就进行更新  这里的key是指 索引(主键,唯一,联合) 如果值存在重复就会执行更新语句,这是mysql独有的,其他数据库不支持

1insert into 表名 (列1,列2values(值1,值2ON DUPLICATE KEY UPDATE  列1=值1,列2=值2

插入的列里面必须有索引列 判断索引列值存在 才会执行修改 如果没有索引列 就只会是插入 不会有修改的情况

总结

ON DUPLICATE KEY UPDATE 算是一个优雅解决新增或修改问题的方案 但是也有缺点 插入的列必须有索引 否则不会判断是否重复 执行修改 如果本身要新增修改的列就没有索引 要单独去加 会造成额外的数据库负担 有更大的使用成本,并且让数据库执行过多的逻辑也会给数据库造成过大的压力,还是要根据具体的情况来决定.没有最完美通用的方案

文章转载自码农私塾,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论