Oracle自动增值

Oracle自动增值,一个很好的例子 摘自

http://blog.csdn.net/tgxblue/

 

--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;

posted @ 2013-03-09 20:25  风雪月归林  阅读(142)  评论(0编辑  收藏  举报