避免 MySQL 插入重复数据的 4 种方式

01 insert ignore into
02 on duplicate key update
03 replace into
04 insert if not exists

select * from  users 

-- 添加数据
insert into users(userid,username,userage,salary) values(1,'周一','1',1000)
-- 如果数据存在则忽视添加 前提条件是插入的数据字段中有主键或唯一索引
insert ignore into users(userid,username,userage,salary) values(1,'周一','1',1000)
-- 重复就会报错
insert  into users(userid,username,userage,salary) values(1,'周一','1',1000)
-- 插入数据 如果数据存在则更新 如果不存在,则直接插入
insert  into users(userid,username,userage,salary) values(1,'周一','1',1000)
on duplicate key update username = '周二',userage = '1',salary = 30000

-- 插入数据 如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入:
replace into users(userid,username,userage,salary) values(1,'周一','1',1000)
-- insert into … select … where not exist ... 
-- 这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,
-- 首先判断MySQL数据库中是否存在这条数据,
-- 如果不存在,则正常插入,如果存在,则忽略:
insert into users(username,userage,salary)
select '周二','1',1000 from users
where not exists 
(select userid from users where userid = 2)

来源
避免 MySQL 插入重复数据的 4 种方式,还有谁不会?!
SQL数据库开发

你可能感兴趣的:(苦练基本功,mysql,数据库,sql)