merge ?into主要是用于處理兩張表大數(shù)據(jù)量的處理 鸦概,相對(duì)效率高一點(diǎn)慕的,項(xiàng)目中遇到一個(gè)對(duì)于同一張表處理的?
如果表A中存在這條記錄就更新這條記錄 阎肝,如果不存在這條記錄 ?就插入新的記錄 網(wǎng)上找了很多 ?基本都有問題,自己嘗試寫了一個(gè) ?測(cè)試通過了肮街。
MERGE INTO A t1
USING ?(
? ? ? ? ? ? ?select count(*) c from A t2 where t2.key='key1'?
)x
ON (x.c > 0)
when matched then?
??????update set t1.value='test', t1.version = sysdate where t1.key='key1'
when not matched then?
? ????insert values('key2','test2','3',sysdate);
commit;
select t.*,t.rowid from A t where t.key='key1';