mysql replace into 实现存在则更新,不存在则插入

Posted chenmz1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql replace into 实现存在则更新,不存在则插入相关的知识,希望对你有一定的参考价值。

 

测试用的mysql数据库:

 

新建测试表:

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `text` varchar(255) DEFAULT NULL,
  `uid` varchar(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uid_unique` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

以上建表三个字段,id是主键自增,bigint类型。uid是字符串,但是加上了唯一约束’uid_unique‘。

 

(1) 添加新的数据

 

技术图片

 

因为库里面没有新的数据,所以肯定是产生一条数据。

 

技术图片

 

 (2) 产生一条新的数据,和 id 以及 uid都不冲突的

 

技术图片

 

这个时候,因为 id是 主键自增的,所以这个时候,会产生一个次于最大值的值,就是1002

 

技术图片

 

以上是关于mysql replace into 实现存在则更新,不存在则插入的主要内容,如果未能解决你的问题,请参考以下文章

mysql 使用 replace into 或者 ON DUPLICATE KEY 实现插入数据或者更新已存在数据(insertOrUpdate)

MySQL replace into

MySQL的replace into的功能场景

MySQL的replace into的功能场景

MySQL的replace into的功能场景

mysql中的replace into和insert into的效率问题