此问题已在此处有答案:
Oracle: how to INSERT if a row doesn't exist(9个回答)
6天前关闭。
如果没有相同类型的数据,如何向表中插入记录
insert into user_table (userid, active,contid) values ('AAA',1,1);
insert into user_table (userid, active,contid) values ('ABA',1,2);
INSERT INTO new_table(userid,isactive)
SELECT userid,1
FROM user_table where contid=1
WHERE NOT EXISTS (SELECT userid
FROM new_table
WHERE contid=1
)
我需要复制数据从一个table1到table2如果table2没有相同的数据.如果数据存在,则跳过,不进行任何插入。我得到“SQL命令没有正确结束”错误与上述查询
5条答案
按热度按时间bgtovc5b1#
可以使用
MERGE
语句:qcbq4gxm2#
exisrs子句应具有另一个条件。
您需要检查是否已经存在一个活动的userid
wnvonmuf3#
您的
insert
查询有两个where
关键字;第二个应该是and
:另外,也许
minus
集合运算符也可以这样做:p1iqtdky4#
您使用了
where
关键字两次。我在下面分享代码。ezykj2lf5#
您可以使用
left join
来获取new_table表中不存在的用户,条件为new_table.userid is null
: