在进行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的时候千万要注意条件,否则就有可能出现大批量数据被修改的情况!!!
时间: 2024-10-13 16:11:02