序列定义
create sequence seq_test
minvalue 10000
maxvalue 99999999999999999
start with 20000
increment by 1
cache 20
cycle
order;
命名规范(个人使用)
- 序列名用seq_开头,后面跟使用该序列的字段名。
- 如果有几个字段用同一个序列,用下划线(_)连接几个字段的名称。
- 如果不同表中相同的字段名需要使用不同的序列,则在字段名后加表的特征,用下划线(_)连接。序列名长度不能超过30个字符。
- 序列名用大写的英文单词来表示。
注意事项:
- 不管在什么语句中(select或者insert)使用seq_test.nextval都会使得seq_test的值增1。
- 在同一个条SQL语句里面针对同一个sequence使用多次NEXTVAL,其值都是一样的。
- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情
- MaxValue的默认值也是最大值是10的27次方。