Oracle序列生成器

  在生活中,我门会需要到一些自动增长的序列,例如记录编号、日志编号等,MySQL和SQL Server采用的是自增字段,Oracle和PostgreSQL采用了更灵活的序列生成器。在本文中,把序列生成器简称为序列。

一、创建序列

创建序列的语法如下:

create sequence 序列名
       [minvalue n]
       [maxvalue n]
       [increment by n]
       [start with n]
       [cache n|nocache]
       [order|noorder]
       [cycle|nocycle];

  参数说明:

  Oracle的序列分为递增序列和递减序列,递减序列极少使用(二十年我从未用过),为了方便介绍,本文假设序列是递增序列。

  序列名:序列名是标志符,建议’以SEQ_打头,例如为T_OPERLOG表的logid字段创建一个序列,可以把它 命名为SEQ_OPERLOG(或SEQ_OPERLOG_LOGID),增加数据结构的可读性,这是我的个人经验,并不是Oracle数据库的要求。

  [minvalue n]:序列的最小值,缺省值是1。

  [maxvalue n]:序列的最大值,缺省值是9999999999999999999999999999。

  [increment by n]:序列递增的步长,缺省值是1。

  [start with n]:序列的起始值,缺省值是minvalue,如果n小于minvalue,创建序列会报语法错误。

  [cache n|nocache]:是否采用缓存机制,nocache不采用缓存,缺省cache 20,数据库每次会生成20个值放在缓存中,如果缓存中有数据,就不需要再查数据库了,采用缓存机制可以提升效率。

  [order|noorder]:获取序列的时候是否按顺序给值,如果多用户一起获取序列的值,使用order可以保证序列值的顺序按访问序列的事件排序,缺省是noorder。

  [cycle

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值