Oracle 自动增长列

以前一直使用的SQL SERVER数据库,他本身就提供了自动增长的功能,但在Oracle就没有了,在网上找一些资料,还是让我给搞定了。

Oracle中创建自动增长主要有两部分:1,创建序列(取得增长的数据),2,创建存储过程(保存自动执行序列)

1,创建序列

CREATE SEQUENCE my_seq          ----以my_seq为名创建序列
START WITH 1                  ----从1开始递增,可以是其他数字
INCREMENT BY 1                   ----步进为1
MAXVALUE 99999999999 [NOMAXVALUE]  ----递增的最大值,NOMAXVALUE没有最大值
NOCYCLE                   ----CYCLE在有最大值时,达到最大值99999999999后循环从1开始再次递增,NOCYCLE不循环
CACHE 20                  ----缓存,默认为20
NOORDER;                   ----还没明白这个是干什么的,不过暂时可有可无的

 

2,创建存储过程

CREATE TRIGGER my_trigger BEFORE INSERT ON table_name FOR EACH ROW
BEGIN SELECT my_seq.NEXTVAL INTO :NEW.column_name FROM DUAL;
END;

 

这样就完成了,在插入的时候就column_name字段就可以自动增长了。

 

 

触发器参考:http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html

posted @ 2011-07-17 11:57  zjking99  阅读(5260)  评论(0编辑  收藏  举报