merge into主要是用于处理两张表大数据量的处理 ,相对效率高一点,项目中遇到一个对于同一张表处理的
如果表A中存在这条记录就更新这条记录 ,如果不存在这条记录 就插入新的记录 网上找了很多 基本都有问题,自己尝试写了一个 测试通过了。
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';