oracle一次新增多条记录通过Union
时间: 2023-07-04 21:27:14 浏览: 82
ORACLE多行记录合并
在 Oracle 数据库中,可以使用 UNION ALL 操作符一次性插入多条记录。UNION ALL 操作符的语法如下:
```
INSERT INTO table_name (column1, column2, column3)
SELECT value1, value2, value3 FROM DUAL
UNION ALL
SELECT value4, value5, value6 FROM DUAL
UNION ALL
SELECT value7, value8, value9 FROM DUAL;
```
在这个语法中,我们可以通过多个 SELECT 语句来一次性插入多条记录,每个 SELECT 语句都返回一条记录。在每个 SELECT 语句中,我们需要指定要插入的列名和值。最后,我们需要使用一个 INSERT INTO 语句来结束 UNION ALL 操作符,并在 INSERT INTO 子句中指定要插入的表名和列名。
下面是一个示例代码:
```
INSERT INTO employees (employee_id, first_name, last_name)
SELECT 1001, 'John', 'Doe' FROM DUAL
UNION ALL
SELECT 1002, 'Jane', 'Doe' FROM DUAL
UNION ALL
SELECT 1003, 'Bob', 'Smith' FROM DUAL;
```
在这个示例代码中,我们一次性向 employees 表中插入了三条记录,分别是 employee_id 为 1001、1002 和 1003 的员工信息。注意,每个 SELECT 语句必须以分号结尾,而整个 INSERT INTO 语句也必须以分号结尾。
需要注意的是,UNION ALL 操作符会将所有的记录合并成一个结果集,然后再将这个结果集插入到表中。因此,如果插入的记录数量比较大,可能会影响性能。如果要插入的记录数量较多,建议使用 INSERT ALL 语句。
希望这个回答能够解决你的问题。
阅读全文