数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle中利用merge语句防止重复插入


发布日期:2018年02月01日
 
oracle中利用merge语句防止重复插入

由于项目中需要用到批量插入为了防止用户插入重复的数据需要先判断插入的数据是不是已经存在如果存在则忽略这次插入否则插入这条数据刚开始的时候是先用一条SQL语句判断如果返回结果是真(记录已经存在)则忽略否则插入这条数据这样的话插入一条数据就要发起两个到数据库的连接后来发现这样做效率实在太低了Google了一下发现oracle数据库支持merge语句做了个测试成功了记录下来供本人及同行以后查阅之用

数据库TEST

CREATE TABLE TEST(

ID NUMBER NOT NULL

NAME VARCHAR() NOT NULL

SEX VARCHAR() DEFAULT

)

插入两条数据

INSERT INTO TEST VALUES(SUNZHENXING)

INSERT INTO TEST VALUES(SUNHAILONG)

MERGE语句

MERGE INTO TEST A USING TEST B

ON (ANAME=BNAME)

WHEN MATCHED THEN

UPDATE SET ASEX=WHERE ANAME=SUNZHENXING

WHEN NOT MATCHED THEN

INSERT VALUES (SUNZHENXING)

需要注意的是MERGE语句中的UPDATE语句和INSERT语句和一般的SQL语句格式有点不同

上一篇:在RHAS4下安装oracle10G

下一篇:PL/SQL 集合相关功能探讨