Oracle 使用序列生成主键批量插入数据
思路:运用子查询及虚表dual实现
1、创建职工表 t_staff , 包含职工号 id ,职工姓名 name ,入职时间 hiredate
SQL> -- 创建职工表 t_staff
SQL> CREATE TABLE t_staff(
2 id NUMBER(5) CONSTRAINT t_staff_id NOT NULL ,
3 name VARCHAR2(50) ,
4 hiredate DATE ,
5 CONSTRAINT t_staff_id_pk PRIMARY KEY(id)
6 ) ;
表已创建。
2、创建用于生成主键的序列
SQL> -- 为 t_staff 表的主键的产生创建一个序列
SQL> CREATE SEQUENCE s_staff_id
2 START WITH 1
3 INCREMENT BY 1
4 MINVALUE 1
5 MAXVALUE 99999
6 NOCYCLE
7 NOCACHE
8 ;
序列已创建。
3、使用序列生成主键批量插入数据
SQL> INSERT INTO t_staff SELECT s_staff_id.nextval , name , hiredate
2 FROM ( SELECT '曾阿牛' AS name , sysdate AS hiredate FROM dual
3 UNION
4 SELECT '周芷若'AS name , sysdate AS hiredate FROM dual ) ;