开发者社区> 旭东的博客> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL replace into (insert into 的增强版)

简介: 在使用SQL语句进行数据表插入insert操作时,如果表中定义了主键,插入具有相同主键的记录会报错:   ?Error Code: 1062. Duplicate entry 'XXXXX' for key 'PRIMARY'(主键冲突)   这样我们只好检查主键是不是存在,若存在则更新,若不存在则插入。
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

在使用SQL语句进行数据表插入insert操作时,如果表中定义了主键,插入具有相同主键的记录会报错:

  ?Error Code: 1062. Duplicate entry 'XXXXX' for key 'PRIMARY'(主键冲突)

  这样我们只好检查主键是不是存在,若存在则更新,若不存在则插入。或者写SQL流程控制语句(if...else...)

?

Mysql提供了replace into跟insert into的功能一样。不同点在于:

  如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。否则,直接插入新数据。

  注意:因为要根据主键或者是唯一索引判断是否有重复数据,所以操作的表必须要有主键或者是唯一索引。否则的话,replace into?会直接插入数据。

?

Mysql replace into用法有三种,最简单的一种用法就是直接将 "insert" 关键字替换为"replace"就可以啦。

  insert into t(... , ...) values(... , ...)

   修改为

  replace into t(... , ...) values(... , ...)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql:insert ignore、insert和replace区别
mysql:insert ignore、insert和replace区别
0 0
Mysql 常用函数(6)- replace 函数
Mysql 常用函数(6)- replace 函数
0 0
mysql 替换字段中的部分字符,mysql替换字符串,mysql 替换字段内容,mysql replace
mysql 替换字段中的部分字符,mysql替换字符串,mysql 替换字段内容,mysql replace
0 0
MySQL的replace函数替换字符串语句的用法
UPDATE zs_goods SET goods_name=REPLACE(goods_name, '礼盒', '替换之后字符串'); zs_goods表名字,goods_name要处理的字段的名字,实现goods_name字段里面所有的字符串'礼盒'替换成 '替换之后字符串'。
0 0
mysql:insert ignore、insert和replace区别
mysql:insert ignore、insert和replace区别
0 0
Oracle MySQL相关工具replace操作实现方式区别
本文列举MySQL、Oracle、常用数据导入工具碰到主键冲突、唯一约束、以及其他对重复数据、已有数据的处理区别,并介绍MySQL、Oracle replace相关语句实现区别。 由此可见在实际使用不同数据库过程中,还是有许多差别,需要大家细心留意。
0 0
慎用mysql replace语句
结论 如果业务逻辑强依赖自增ID,绝对不要用replace,普通环境也不建议这样用,因为会导致主键的重新组织 当存在pk冲突的时候是先delete再insert 当存在uk冲突的时候是直接update,update操作不会涉及到auto_increment的修改 很大程度上会导致主备中断,存在容灾.
2573 0
+关注
旭东的博客
从事互联网开发工作,写博客,记录问题与学习支持,并分析
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载


http://www.vxiaotou.com