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