MySQL 5.7中REPLACE语句怎么用
这篇文章主要介绍MySQL 5.7中REPLACE语句怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
REPLACE类似INSERT,会以主键或唯一索引为条件,如果插入行的主键或唯一键在表中已经存在,旧的记录会被更新;如果插入行的主键或唯一键在表中不存在,会插入这一条记录。REPLACE是MySQL对SQL标准的扩展。
示例①,第二条记录由于和第一条记录的主键相同,第一条记录会被更新
CREATETABLEtest(idINTUNSIGNEDNOTNULLAUTO_INCREMENT,dataVARCHAR(64)DEFAULTNULL,tsTIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(id));
mysql>REPLACEINTOtestVALUES(1,'Old','2014-08-2018:47:00');QueryOK,1rowaffected(0.04sec)mysql>REPLACEINTOtestVALUES(1,'New','2014-08-2018:47:42');QueryOK,2rowsaffected(0.04sec)mysql>SELECT*FROMtest;
+----+------+---------------------+|id|data|ts|+----+------+---------------------+|1|New|2014-08-2018:47:42|+----+------+---------------------+1rowinset(0.00sec)
示例②,第二条记录的主键和第一条记录的主键不相同,会将第二条记录插入到表中,并保留第一条记录
CREATETABLEtest2(idINTUNSIGNEDNOTNULLAUTO_INCREMENT,dataVARCHAR(64)DEFAULTNULL,tsTIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(id,ts));
mysql>REPLACEINTOtest2VALUES(1,'Old','2014-08-2018:47:00');QueryOK,1rowaffected(0.05sec)mysql>REPLACEINTOtest2VALUES(1,'New','2014-08-2018:47:42');QueryOK,1rowaffected(0.06sec)mysql>SELECT*FROMtest2;
+----+------+---------------------+|id|data|ts|+----+------+---------------------+|1|Old|2014-08-2018:47:00||1|New|2014-08-2018:47:42|+----+------+---------------------+2rowsinset(0.00sec)
以上是“MySQL 5.7中REPLACE语句怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。