oracle 9i以上最有效率的if(exists)update else insert操作

我們有時需要對一個表進行更新操作,當某條記錄不存在的時候進行插入操作,存在的時候更新紀錄。通常我們使用if(exists(select ....)update....else insert,這樣進行兩遍表掃描,效率很低,在Oracle 9i以上有一個關鍵字merge,我們使用它就可以了。merge into 需要兩個標操作,我們利用dual
merge into referer_stat L using (select '1' from dual) N on (L.webid=234) WHEN MATCHED THEN UPDATE set count = count +1 WHEN NOT MATCHED THEN INSERT (webid)values(234) ;

當表referer_stat中存在id=234記錄時更新,不存在時插入紀錄
發佈了31 篇原創文章 · 獲贊 0 · 訪問量 1760
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章