程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle裡通過merge語句判斷重復插入

Oracle裡通過merge語句判斷重復插入

編輯:Oracle數據庫基礎

導讀:Oracle數據庫功能比較齊全,在數據庫業界也算是名氣不小的的數據庫系統啦。由於項目中需要用到批量插入,為了防止用戶插入重復的數據,需要先判斷插入的數據是不是已經存在,如果存在則忽略這次插入,否則插入這條數據,剛開始的時候是先用一條SQL語句判斷,如果返回結果是真(記錄已經存在),則忽略,否則插入這條數據,這樣的話插入一條數據就要發起兩個到數據庫的連接,後來發現這樣做效率實在太低了,搜索了一下,發現Oracle數據庫支持merge語句,做了個測試,成功了,記錄下來供大家參考。

數據庫:TEST

1 CREATE TABLE TEST(

2 ID NUMBER NOT NULL,

3 NAME VARCHAR2(30) NOT NULL,

4 SEX VARCHAR2(2) DEFAULT '男'

插入兩條數據:

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語句格式有點不同

上文中的內容是從工作中總結出來的,如有什麼不妥的地方還望大家見諒,希望對大家能夠有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved