SQL~用insert语句添加数据不能和已有的重复

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/han_xiaoxue/article/details/80353912

Table1

这里写图片描述

Table2 初始状态为空

这里写图片描述

运行sql

这里写图片描述

table2的结果

Table1中的数据全部插入到table2
这里写图片描述

将Table1再插入两条数据

新插入的两条 其中一条与之前重复 也就是说 table2中已经有过了
这里写图片描述

再执行sql

看到重复的没插入 直插入了没有重复的一行
这里写图片描述

table2的结果

这里写图片描述

sql:

insert into TABLE2
select *
from TABLE1 
where not exists (select 1 from TABLE2 where TABLE2.id=TABLE1.id and TABLE2.NAME = TABLE1.NAME)

sql2:

INSERT INTO TABLE2 (
SELECT * FROM TABLE1 tmp WHERE TMP.NAME in(
select a from (SELECT ID,NAME as a from TABLE1 group by ID,NAME)) and TMP.NAME NOT IN(SELECT NAME FROM TABLE2) 
 MINUS(SELECT * FROM TABLE2))

猜你喜欢

转载自blog.csdn.net/han_xiaoxue/article/details/80353912
今日推荐