日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

oracle中利用merge語句防止重復(fù)插入

 168一路發(fā) 2011-03-22

由于項目中需要用到批量插入,為了防止用戶插入重復(fù)的數(shù)據(jù),需要先判斷插入的數(shù)據(jù)是不是已經(jīng)存在,如果存在則忽略這次插入,否則插入這條數(shù)據(jù),剛開始的時候是先用一條SQL語句判斷,如果返回結(jié)果是真(記錄已經(jīng)存在),則忽略,否則插入這條數(shù)據(jù),這樣的話插入一條數(shù)據(jù)就要發(fā)起兩個到數(shù)據(jù)庫的連接,后來發(fā)現(xiàn)這樣做效率實在太低了,Google了一下,發(fā)現(xiàn)oracle數(shù)據(jù)庫支持merge語句,做了個測試,成功了,記錄下來供本人及同行以后查閱之用。

數(shù)據(jù)庫:TEST

1 CREATE TABLE TEST( 
2     ID      NUMBER NOT NULL,
3     NAME    VARCHAR2(30) NOT NULL,
4     SEX     VARCHAR2(2) DEFAULT '男' 
5 )
插入兩條數(shù)據(jù):

 

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多