oracle里通过merge语句判断重复插入

2012-11-12

    由于项目中需要用到批量插入,为了防止用户插入重复的数据,需要先判断插入的数据是不是已经存在,如果存在则忽略这次插入,否则插入这条数据,刚开始的时候是先用一条SQL语句判断,如果返回结果是真(记录已经存在),则忽略,否则插入这条数据,这样的话插入一条数据就要发起两个到数据库的连接,后来发现这样做效率实在太低了,Google了一下,发现oracle数据库支持merge语句,做了个测试,成功了,记录下来供本人及同行以后查阅之用。
    数据库:TEST
    1 CREATE TABLE TEST(
    2     ID      NUMBER NOT NULL,
    3     NAME    VARCHAR2(30) NOT NULL,
    4     SEX     VARCHAR2(2) DEFAULT '男'
    5 )
    插入两条数据:
    1 INSERT INTO TEST VALUES(1,'SUNZHENXING','男')
    2 INSERT INTO TEST VALUES(2,'SUNHAILONG','女')
    MERGE语句:
    1 MERGE INTO TEST A USING TEST B
    2 ON (A.NAME=B.NAME)
    3 WHEN MATCHED THEN
    4 UPDATE SET A.SEX='女'WHERE A.NAME='SUNZHENXING'
    5 WHEN NOT MATCHED THEN
    6 INSERT VALUES (3,'SUNZHENXING','女')
    需要注意的是:MERGE语句中的UPDATE语句和INSERT语句和一般的SQL语句格式有点不同

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    相关推荐

    oracle实现多表查询与子查询SQL

    OracleImpandExp(导入和导出)工具使用

    oraclerman备份和还原恢复数据库

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com