--1.创建用户名表 create table users( userId int primary key,--用户id号 userName varchar(20),--用户名 passwd varchar(20), email varchar(30), grade int); --用户级别 --2.为userId列创建序列 create sequence userId_seq minvalue 1 maxvalue 999999 --最小1,最大增长到999999 --nomaxvalue 没有最大值 increment by 1 --每次增加几个 start with 1 --从1开始 nocache --没有缓存序列 --有缓存序列个数,有助于提高效率,但是可能造成跳号 --3.为表创建触发器 create or replace trigger trg_insert_users before insert on users --在向users表插入数据前 for each row begin select userId_seq.nextval into :new.userId from dual;--冒号要近new end; //4.插入数据 insert into users values(userId_seq.Nextval,'test5','test5','test5.com',5); --插入100万条数据 declare i binary_integer :=1; begin loop insert into users values(userId_seq.Nextval,'test5','test5','test5.com',5); i :=i+1; exit when i >999999; end loop; end;
不过用这个循环插入这么多的数据,貌似效率很低,还有什么办法更高效地插入大量数据?请各位大侠教一下小弟。