Oracle中实现一次插入多条数据
一、需求描述
在我们实际的业务场景中,由于单条插入的效率很低(每次都需要数据库资源连接关闭的开销),故需要实现一次性插入多条数据,用以提升数据插入的效率;
如下图是常见的单条插入数据:
二、Oracle实现一次插入多条数据
我这里以grade2表为例进行演示说明:
2.1、union all拼接查询
采用union all拼接查询方式实现一次向同一个表中插入多条数据语法:
示例(向同一个表同时插入6条不同内容的数据):
2.2、insert all插入
采用insert all方式实现一次向同一个表中插入多条数据语法:
示例(向同一个表同时插入6条不同内容的数据):
insert all方式实现一次向多个表中插入多条数据语法:
示例(向多个表同时插入6条不同内容的数据):
注意:insert all语句里不能直接使用序列生成的值(因为即便每个into语句里都加上seq_test_insert.nextval也不会获得多个值):