一、合并语句的介绍
- 按照指定的条件执行插入或更新操作
- 如果满足条件的行存在,执行更新操作;否则执行插入操作:
– 避免多次重复执行插入和删除操作
– 提高效率而且使用方便
– 在数据仓库应用中经常使用
二、合并语句的语法
可以使用merge 语句,根据指定的条件进行插入或更新操作
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
解释:
- WHEN MATCHED THEN 存在则执行 UPDATE;
- WHEN NOT MATCHED THEN 不存在则执行 INSERT
三、合并语句的举例
在对表COPY_EMP 使用merge 语句,根据指定的条件从表EMPLOYEES 中插入或更新数据。
MERGE INTO copy_emp c
USING employees e
ON (c.employee_id = e.employee_id)
WHEN MATCHED THEN
UPDATE SET
c.first_name = e.first_name,
c.last_name = e.last_name,
...
c.department_id = e.department_id
WHEN NOT MATCHED THEN
INSERT VALUES(e.employee_id, e.first_name, e.last_name,
e.email, e.phone_number, e.hire_date, e.job_id,
e.salary, e.commission_pct, e.manager_id,
e.department_id);