insert语句批量插入去重
新建表格如下:
CREATE TABLE `organization3` ( `org_id` varchar(30) NOT NULL COMMENT 'ID', `area_belong` varchar(20) DEFAULT NULL COMMENT '归属地市', PRIMARY KEY (`org_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1. insert ignore
insert ignore 会自动忽略数据库已经存在的数据(根据主键或者唯一索引判断),如果没有数据就插入数据,如果有数据就跳过插入这条数据。
INSERT IGNORE into organization3(area_belong,org_id) VALUES ('3190','311130038311311000'),('3123','311130038311311000');
得到

2. replace into
replace into 首先尝试插入数据到表中,
如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 否则,直接插入新数据。
在上边的基础上执行以下SQL
REPLACE into organization3(area_belong,org_id) VALUES ('9999','311130038311311000');
得到

3. insert on duplicate key update
如果发现了重复数据(根据主键或者唯一索引判断)则根据后边的update语句来更新字段,而不是报错
在上边的基础上执行以下SQL
insert into organization3(area_belong,org_id) VALUES ('9999','311130038311311000') ON DUPLICATE KEY update area_belong = '8888';
得到


浙公网安备 33010602011771号