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

Table1

SQL—— 用insert语句添加数据不能和已有的重复_第1张图片

Table2 初始状态为空

SQL—— 用insert语句添加数据不能和已有的重复_第2张图片

运行sql

SQL—— 用insert语句添加数据不能和已有的重复_第3张图片

table2的结果

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

将Table1再插入两条数据

新插入的两条 其中一条与之前重复 也就是说 table2中已经有过了
SQL—— 用insert语句添加数据不能和已有的重复_第4张图片

再执行sql

看到重复的没插入 直插入了没有重复的一行
SQL—— 用insert语句添加数据不能和已有的重复_第5张图片

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))

你可能感兴趣的:(数据库)