Oracle主键自增方法

代码
/*创建一个用户表*/
CREATE TABLE TB_INCREASE(
           ID 
number(10primary key,  /*主键,自动增加*/
           UNAME 
varchar2(10)
           );

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

/*创建一个自增触发器*/
CREATE TRIGGER TB_INCREASE BEFORE
INSERT ON  TB_INCREASE FOR EACH ROW
BEGIN
SELECT TBINCREASE_SEQUENCE.NEXTVAL INTO:New.ID FROM DUAL;
END;

 

 

这样一个过程之后,测试数据

insert into tb_increase(uname) values('fdsafs');

执行几次再看看表的结果,就会看到id是从1开始依次往上增.

另外有两个问题需要注意的事,增长序列器可以多个表共用,但触发器只能一个表一个触发器.

多表共用一个序列器时, 几个不会出现重复的ID值,这要根据系统的需要而作设计

 

 

posted on 2010-07-15 16:52  skeeter  阅读(4246)  评论(0编辑  收藏  举报

导航