Oracle實現存在更新不存在插入merge into

使用merge into 實現存在即更新不存在即插入
類似 mysql的on duplicate key update

merge into BUSI_TASERIAL_STATUS bts
using ( select 'cs0001' as taserialno,'0' as notify_status from dual
union all
select 'cs0002' as taserialno,'0' as notify_status from dual
union all
select 'cs0003' as taserialno,'0' as notify_status from dual
) temp
on(temp.taserialno=bts.taserialno)
when matched then
 update set bts.notify_status=temp.notify_status
 when not matched then
 insert(bts.taserialno,bts.notify_status)
 values
 (temp.taserialno,temp.notify_status)
MERGE INTO table_name alias1 
USING (table|view|sub_query) alias2
ON (join condition) 
WHEN MATCHED THEN 
    UPDATE table_name 
    SET col1 = col_val1, 
           col2 = col_val2 
WHEN NOT MATCHED THEN 
    INSERT (column_list) VALUES (column_values); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章