在使用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(... , ...)

 

 

原贴 :https://www.cnblogs.com/xudong-bupt/p/3948162.html

 

相关文章:

  • 2021-12-23
  • 2021-07-01
  • 2021-07-19
  • 2021-12-26
  • 2022-12-23
  • 2022-03-02
  • 2021-12-03
猜你喜欢
  • 2021-10-30
  • 2023-01-18
  • 2022-12-23
  • 2021-10-21
  • 2021-04-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案