MERGE INTO
是 SQL 中的一种语句,主要用于合并(或称为“合并插入”)数据。这种语句通常用于将数据从一个源表合并到一个目标表中,并在目标表中进行插入、更新或删除操作。
MERGE INTO
的基本语法如下:
MERGE INTO target_table AS target
USING source_table AS source
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
是你要从中读取数据的源表。ON (condition)
是定义如何匹配源表和目标表记录的条件。WHEN MATCHED THEN
定义了当目标表中存在匹配记录时要执行的操作,通常是更新操作。WHEN NOT MATCHED THEN
定义了当目标表中没有匹配记录时要执行的操作,通常是插入操作。
示例:
假设你有一个员工表 employees
和一个新的员工数据表 new_employees
,你想将 new_employees
表中的数据合并到 employees
表中。如果 employees
表中已有记录,则更新其信息;如果没有记录,则插入新记录。
MERGE INTO employees AS target
USING new_employees AS source
ON (target.employee_id = source.employee_id)
WHEN MATCHED THEN
UPDATE SET target.name = source.name,
target.position = source.position,
target.salary = source.salary
WHEN NOT MATCHED THEN
INSERT (employee_id, name, position, salary)
VALUES (source.employee_id, source.name, source.position, source.salary);
在这个例子中:
- 如果
employees
表中存在与new_employees
表中的employee_id
相匹配的记录,employees
表中的记录将被更新。 - 如果
employees
表中没有匹配的记录,则会插入new_employees
表中的新记录。
MERGE INTO
语句在不同的数据库系统中可能有些许不同,因此请参考具体数据库系统的文档了解详细的语法和使用方法。