Merge into 使用

在进行SQL语句编写时,我们经常会遇到这样的问题:当存在记录时,就更新(Update),不存在数据时,就插入(Insert),oracle为我们提供了一种解决方法——Merge into ,具体语法如下:

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); 

举个例子吧:

MERGE INTO Table1 T1
USING (SELECT '001' AS colum1,2 AS colum2 FROM dual) T2
ON ( T1.colum1=T2.colum1)
WHEN MATCHED THEN
  UPDATE SET T1.colum2 = T2.colum2
WHEN NOT MATCHED THEN 
  INSERT (colum1,colum2) VALUES(T2.colum1,T2.colum2);

注意:

在使用Merge into的时候千万要注意条件,否则就有可能出现大批量数据被修改的情况!!!

原文地址:https://www.cnblogs.com/programsky/p/3822610.html