日期:2014-05-16  浏览次数:20557 次

Oracle创建表设置自动增长列范例

1、创建一个用户表t_sys_user,其中有id,login_name,login_pwd三个字段,ID为自动增长列:

create table t_sys_user
(
  id number(6) not null primary key,
  login_name varchar2(50) not null,
  login_pwd varchar2(50) not null
);

?2、创建序列:

create sequence seq_user
       increment by 1		--指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
       start with 1		--指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
       maxvalue 9999		--指定序列可生成的最大值。
       cycle nocache		--一直累加,不循环 

?3、创建触发器:

create or replace trigger tri_user
           before insert on t_sys_user for each row
       begin
           select seq_user.nextval into:new.id from dual; 	--这里是最容易出错的地方
       end;
       /

?

?4、测试:

insert into t_sys_user (login_name,login_pwd) values ('zhanggc','123456');

?

5、更改序列:

create sequence seq_user
       increment by 1		
     start with 1		     
     maxvalue 9999		
    cycle nocache	

??

?

?