原文发表于网易博客 2010-09-17 17:30:17
先前在学校时候是有看过并且也用过一段时间的Mysql的.在Mysql中创建一个自动递增的字段,比较简单.
比如建表语句中,id int key auto_increment,最后在insert时,对应字段填空就行了.
但在oracle中,还没有见到周围人有直接创建一个自增字段的.上网找了下,不少资料中都说不支持.要实现自增字段,只能通过其他方式来实现.比如,sequence.
create sequence seq_test minvalue 1 maxvalue 99999 start with 1 increment by 1 cycle nocache;
其中 cycle表示达到了最大值之后又从最小值开始循环.nocache是不把sequence的值缓存起来.
这样,insert一条记录时,在对应位置填写sequence.nextval即可,也可以使用sequence.currval来查看当前的sequence的值.
不同的是,如果没有调用过sequence.nextval,则调用sequnce.currval会报错.调用sequence.nextval使得sequence的值递增,然后返回当前值.sequence.currval则不改变sequence的值.