序列

1.  序列具有以下特性:自动生成唯一编号,是一个可共享的对象,通常用于创建主键值,如果将序列高速缓存到内存中,则可以提高访问序列值得效率。

生成唯一的整数,序列号的存储和生成与表无关,因此同一序列可以用于多个表。

2.  创建序列:

Create sequence dept_deptid_seq  INCREMENT BY 10(指定间隔)

                                                                    START WITH 120

                                                                    MAXVALUE 9999

                                                                    NOCACHE

                                                                    NOCYCLE;

3.  确认序列:

USER_SEQUENCES数据字典表中验证序列值

Select sequence_name,min_value,max_value,increment_by,last_number   from user_sequences;

Last_number列将显示下一个可用的序列号(如果指定了NOCACHE

4.  NEXTVAL

NEXTVAL会返回下一个可用的序列值。每次被引用时它都会返回一个唯一的值,即使对于不同的用户也是这样。

5.  CURRVAL:获得当前序列值

必须对该序列发出NEXTVAL,然后CURRVAL才能包含值

NEXTVAL伪列用于从指定的序列中抽取连续的序列号。您必须用序列名来限定NEXTVAL。当您引用sequence.NEXTVAL时,系统会生成新的序列号,并且将当前序列号放置在CURRVAL中。CURRVAL伪列用于引用当前用户刚刚生成的序列号。必须首先用NEXTVAL在当前用户的会话中生成一个序列号,然后才能引用CURRVAL。必须用序列名来限定CURRVAL。当引用sequence.CURRVAL时,会显示给那个用户进程的最后一个值。

6.  使用NEXTVALCURRVAL的规则:

您可以在以下上下文中使用NEXTVALCURRVAL

a.       不属于字查询一部分的select语句的select列表

b.       INSERT语句中的字查询的select列表

c.       INSERT语句的VALUES字句

d.       UPDATE语句的SET字句。

7.  使用序列:

在内存中高速缓存序列可以更快地访问那些序列值。当首次引用序列时,系统会将序列值填充到高速缓存中。要查看下一个序列值得每个请求都会从高速缓存的序列中检索到所需的值。在使用了最后一个序列值之后,对序列的下一个请求会将序列的另一个高速缓存拖入到内存中。

虽然序列生成器是发出没有间断的连续序号,但是此操作会受提交或回退操作的影响。因此如果回退一个包含序列的语句,则该序列号将会丢失。另一个可能原因是系统崩溃。

如果序列使用了NOCACHE选项,则通过查询USER_SEQUENCES表就可以查看下一个可用的序列值,而不使它递增。

8.  修改序列:

Alter sequence dept_deptid_seq  INCREMENT BY 20

                                                                   MAXVALUE 99999

                                                                   NOCACHE

                                                                   NOCYCLE;

9.  修改序列的准则:

必须具有ALTER的权限,修改只会影响以后生成的序列号,如果要从不同的序号处重新开始,则必须删除原来原有的序列然后重新创建(即不能更改START WITH选项),系统会执行一些验证操作(即系统无法强加一个小于当前序列号的新MAXVALUE

10. 删除序列:

         Drop sequence dept_deptid_seq;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值