Oracle merge into 语句用法 Oracle merge into 批量更新 关联更新 批量修改 关联修改
Oracle的MERGE INTO语句是一个强大的工具,可以用来执行批量更新和插入操作。这个命令的基本语法如下:
MERGE INTO target_table tgt
USING (source_table_or_view) src
ON (condition)
WHEN MATCHED THEN
UPDATE SET
column1 = value1,
column2 = value2,
...
WHEN NOT MATCHED THEN
INSERT (column1, column2, ...)
VALUES (value1, value2, ...);
在这个语法中:
target_table
是你想要更新或插入数据的表。source_table_or_view
是包含数据的源表或视图。condition
是用来匹配target_table
和source_table_or_view
的条件。WHEN MATCHED THEN
是当condition
满足时执行的更新操作。WHEN NOT MATCHED THEN
是当condition
不满足时执行的插入操作。
下面是一个使用MERGE INTO的例子:
假设我们有两个表,一个名为employees
的目标表和一个名为employee_updates
的源表。我们想要将employee_updates
中的数据更新到employees
表中,如果在employees
表中找不到匹配的记录,则插入这条记录。
MERGE INTO employees e
USING (SELECT employee_id, name, salary FROM employee_updates) u
ON (e.employee_id = u.employee_id)
WHEN MATCHED THEN
UPDATE SET e.name = u.name, e.salary = u.salary
WHEN NOT MATCHED THEN
INSERT (employee_id, name, salary) VALUES (u.employee_id, u.name, u.salary);
在这个例子中,我们通过employee_id
字段来匹配employees
表和employee_updates
表中的记录。如果找到匹配的记录,则更新employees
表中的name
和salary
字段。如果没有找到匹配的记录,则会在employees
表中插入来自employee_updates
的新记录。
评论已关闭