登录
首页 >  数据库 >  MySQL

mysql的replace,存在更新,不存在插入

来源:SegmentFault

时间:2023-01-28 15:12:46 182浏览 收藏

本篇文章向大家介绍《mysql的replace,存在更新,不存在插入》,主要包括MySQL,具有一定的参考价值,需要的朋友可以参考一下。

  1. insert

标准的sql语句中,插入数据只有一种形式insert into tablename (列明) values (列值);
插入多条insert into tablename (列明) values (列值),(列值),(列值);
mysql中还有另一中插入数据方式,insert into tablename set column1=val1,column2=val2;
insert into tablrname () value();遇到都是空值的情况,会插入一条数据,值是默认值

  1. replace

语句 replace into tablename (列明) values (列值);
或者 replace into tablename set column1=val1,column2=val2;
插入多条 replace into tablename (列明) values (列值),(列值),(列值);
replace使用场景:遇到存在就更新,不存在就插入
replace将delete和insert结合,形成一个原子操作,避免使用事务
replace使用时表中一定要有唯一索引,否则就和insert效果一样
replace执行后返回所影响的行数,返回1表示没有重复记录,等同insert,返回2表示有一条重复的记录,效果是先delete后insert,如果返回值大于2,表示表中有多个唯一索引,

table 中a,b,c,上字段都是唯一索引有值
a b c
1 1 1
2 2 2
3 3 3
执行 replace insert table(a,b,c) values(1,2,3);
执行后返回4,数据库最后数据
a b c
1 2 3
replace会对比每一个唯一索引的值,只要有重复就会删除替换

好了,本文到此结束,带大家了解了《mysql的replace,存在更新,不存在插入》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表