熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle中利用merge語句防止重復插入

2013-11-13 22:10:23  來源: Oracle 

  由於項目中需要用到批量插入為了防止用戶插入重復的數據需要先判斷插入的數據是不是已經存在如果存在則忽略這次插入否則插入這條數據剛開始的時候是先用一條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語句格式有點不同


From:http://tw.wingwit.com/Article/program/Oracle/201311/18365.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.