13.MySQL解决主键冲突

Posted 码海无际

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13.MySQL解决主键冲突相关的知识,希望对你有一定的参考价值。

1.准备

 1 CREATE DATABASE mahaiwuji;
 2 USE mahaiwuji;
 3  4 CREATE TABLE emp
 5 (
 6     empno INT PRIMARY KEY,
 7     ename VARCHAR(10),
 8     sal INT
 9 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
10 11 INSERT INTO emp VALUES (1,\'smith\',2800);
12 INSERT INTO emp VALUES (2,\'allen\',1500);
13 INSERT INTO emp VALUES (3,\'ward\',3500);
14 INSERT INTO emp VALUES (4,\'jones\',1300);
15 INSERT INTO emp VALUES (5,\'martin\',1600);
16 INSERT INTO emp VALUES (6,\'blake\',3000);

2.方式一:主键冲突更新

INSERT [INTO] 数据表名 [(字段列表)] {VALUES | VALUE} (字段列表) ON DUPLICATE KEY UPDATE 字段名1 = 新值1[,字段名2 = 新值2] …;

1 INSERT INTO emp (empno,ename,sal) VALUES (2,\'allen2\',3000)
2 ON DUPLICATE KEY UPDATE ename = \'allen2\',sal = 3000;

3.方式二:主键冲突替换

REPLACE [INTO] 数据表名 [(字段列表)] {VALUES | VALUE} (值列表) [, (值列表)] …;

1 REPLACE INTO emp (empno,ename,sal) VALUES (3,\'ward2\',3600);

4.区别

REPLACE语句与INSERT语句的使用类似,区别在于前者每执行一次就会发生两个操作(删除记录和插入记录)。

以上是关于13.MySQL解决主键冲突的主要内容,如果未能解决你的问题,请参考以下文章

sql解决主键冲突

解决Pg新增数据主键冲突

解决插入数据时,唯一索引/主键冲突问题

mysql修改数据 -- 主键冲突

在同步 b/w 两个 sql server 2005 db 时解决标识列主键冲突

Oracle+Entity Framework主键冲突