本文主要是介绍oracle 自动增值列的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//在oracle中实现一个自动增值列--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;
不过用这个循环插入这么多的数据,貌似效率很低,还有什么办法更高效地插入大量数据?请各位大侠教一下小弟。
这篇关于oracle 自动增值列的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!