oracle merge的用法
时间: 2023-11-18 11:05:28 浏览: 72
Oracle的`MERGE INTO`语句用于在一个表中插入或更新数据。语法格式如下:
```
MERGE INTO table_name USING source_table
ON (condition)
WHEN MATCHED THEN
UPDATE SET column1 = value1, column2 = value2, ...
WHEN NOT MATCHED THEN
INSERT (column1, column2, ...) VALUES (value1, value2, ...);
```
其中:
- `table_name`为目标表名。
- `source_table`为源表名。
- `condition`为连接条件。
- `WHEN MATCHED THEN`后面的部分表示在目标表中找到与源表匹配的数据时执行的更新操作。
- `WHEN NOT MATCHED THEN`后面的部分表示在目标表中没有找到与源表匹配的数据时执行的插入操作。
使用`MERGE INTO`语句可以简化代码,避免使用`UPDATE`和`INSERT`语句分开写的麻烦。
实例:
```
MERGE INTO employees e
USING new_employees n
ON (e.employee_id = n.employee_id)
WHEN MATCHED THEN
UPDATE SET e.first_name = n.first_name, e.last_name = n.last_name
WHEN NOT MATCHED THEN
INSERT (e.employee_id, e.first_name, e.last_name)
VALUES (n.employee_id, n.first_name, n.last_name);
```
上面的语句将new_employees表中的数据合并到employees表中,当employee_id已经存在时更新,不存在时插入.
阅读全文