小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

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

數(shù)據(jù)庫(kù):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語(yǔ)句:

 

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語(yǔ)句中的UPDATE語(yǔ)句和INSERT語(yǔ)句和一般的SQL語(yǔ)句格式有點(diǎn)不同,^_^。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多