实际业务使用中,有时候会遇到插入数据库,但是如果某个属性(比如:主键)存在,就做更新。通常有两种方式:1、replace into  2、on duplicate key update

但是在使用过程中,发现了两者的区别,整理如下:

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

                                         replace into tbl_name(col_name, ...) values(...)

on duplicate key update:当发生重复值的时候,就执行UPDATE后面的代码

       insert into dh_dead_letter(id,topic_code,content) values('2','topic_code','topic_code') on duplicate key update topic_code = values(topic_code), content = values(content);

 

       实际业务场景: 当数据交换任务,进行数据库插入数据时,如果配置的映射列,不是所有映射列,则要使用on duplicate key update只更新或插入部分列的数据,不能使用replace into,否则会把其他列原有的值给删除掉了。

     

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2021-07-27
  • 2021-11-10
  • 2021-10-23
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2022-03-02
  • 2021-10-21
  • 2021-11-06
  • 2021-06-19
  • 2022-12-23
  • 2022-02-17
相关资源
相似解决方案