oracle批量插入

2020/12/5 oracle

# Heading

表结构:

create table Student(
  id   Varchar2(11) primary key,
  name varchar2(32) not null,
  sex  varchar2(3)  not null,
  age  smallint,
  tel  varchar(16)
)
1
2
3
4
5
6
7

# 单条多次插入

insert into Student(id, name, sex, age, tel) values ('12', 'jack1', '男', 12, '13345674567');
insert into Student(id, name, sex, age, tel) values ('13', 'jack2', '男', 13, '13345674567');
1
2

# 批量插入

  • 方案一:
insert all
    into Student(id, name, sex, age, tel) values ('12', 'jack1', '男', 12, '13345674567')
    into Student(id, name, sex, age, tel) values ('13', 'jack2', '男', 13, '13345674567')
    select 1 from dual;
1
2
3
4

insert all into并不表示一个表中插入多条记录,而是表示多表插入各一条记录,而这多表可以是同一个表,就成了单表插入多条记录。

  • 方案二:
insert into Student(id, name, sex, age, tel)
select '24', 'jack', '男', 22, '13345674567' from dual
  union select '25', 'jack', '男', 22, '13345674567' from dual
  union select '26', 'jack', '男', 32, '13345674567' from dual
1
2
3
4

# 从另一个表插入

insert into tmp2 select * from tmp;
1

参考:https://www.cnblogs.com/hjm0928/p/10254894.html 参考:https://docs.oracle.com/database/121/SQLRF/statements_9015.htm#SQLRF01604