MySQL操作之ON DUPLICATE KEY UPDATE

文章目录

概述

ON DUPLICATE KEY UPDATE 主要是用于插入和更新一起的操作,当一条数据插入时,会根据主键约束和唯一性约束选择插入操作还是更新操作。也可以做批量的插入或更新操作。

  • 当主键重复时,执行Update操作
  • 当主键不重复,唯一性约束字段重复时,执行Update操作
  • 当主键不重复,唯一性约束字段也不重复时,执行Insert操作

语法

也可做批处理

INSERT INTO table(colum1,colum2,colum3...) VALUES (value1,value2,value3...)
ON DUPLICATE KEY UPDATE 
colum1 = value1, colum2 = value2, colum3 = value3 ... 

例子

user表
在这里插入图片描述

id为主键,code有唯一性约束

插入三条记录

insert into 
`user` (id,code,age,username,password)
values (11,'aa',18,'zhangsan','123'),
(12,'bb',18,'lisi','123'),
(13,'cc',18,'wangwu','123');

在这里插入图片描述
执行操作
ps:更新操作并未修改id

insert into 
`user` (id,code,age,username,password) 
values (11,'aa',18,'zhangsan','123'),
(120,'bb',18,'lisi','123456'),
(13,'cc',18,'wangwu','123456'),
(14,'dd',18,'laoliu','123')
as temp 
on duplicate key update
code = temp.code,age = temp.age,username = temp.username,password = temp.password;

注意:这里用户zhangsan未改变,lisi更改了id和密码,wangwu更改了密码,新增了一条用户记录laoliu

结果
在这里插入图片描述
zhangsan未改变
lisi密码更改
wangwu密码更改
lailiu新增成功

猜你喜欢

转载自blog.csdn.net/weixin_43636205/article/details/129624032
今日推荐