oracle数据库表用序列实现主键自增张

 



oracle中没有自增字段,可通过序列+触发器间接实现,一般要经过一下几步:

注意:序列和触发器必须建立在同一个用户名下否则运行出错

1建立数据表



createtable表名(
           userid number(10) primarykey,  
           username varchar2(20)
           );



2创建自动增长序列



CREATE SEQUENCE 序列名
 INCREMENT  BY 1    -- 每次加几个  
    START  WITH 1      -- 从1开始计数  
    NOMAXVALUE        -- 不设置最大值  
    NOCYCLE           -- 一直累加,不循环  
    CACHE  10



3创建触发器



CREATE TRIGGER 触发器名 BEFORE
insert ON 表名  FOR EACH ROW
begin
select 序列名.nextval  into :New.主键名 from dual;
end ;



4 提交

commit;

5 测试

反复执行如下语句:



insert into Test_Increase(Username)  values ( ' test ' )



6 查看插入结果:

userid username

1       test
 2       test
 3       test
 4       test
 5       test
 6       test
 7       test
 8       test
 9       test