使用merge into解决,这也是我今天下午刚学习的新知识。
merge into,有一个特殊功能,就是当存在记录的时候进行更新操作,不存在数据的时候,进行插入操作。相当于mssql中的
if exists(...)
update table
else
insert into table
语法如下:
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 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);