Oracle常见数据库对象—序列(10级学员 宋立兴课堂笔记)

 

Oracle常见数据库对象—序列

一、序列:是oacle提供的用于产生一系列唯一数字的数据库对象。

a)  序列的特点

                     i.   自动提供唯一的数值

                     ii.   共享对象

                     iii.  主要用于提供主键值

                     iv.  将序列值装入内存可以提高访问效率

b)  序列的定义

CREATE SEQUENCE sequence

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE N|NOMAXVALUE}]

[{MINVALUE n|NOMINVALUE}]

[{CYCLE |NOCYCLE}]

[{CACHE n|COCACHE}];           

二、序列的创建

a)          要有创建序列的权限 create sequence 或 create any sequence

b)         创建序列的语法

CREATE SEQUENCE sequence  //创建序列名称

[INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1

[START WITH n]    //开始的值,递增默认是minvalue 递减是maxvalue

  [{MAXVALUE n | NOMAXVALUE}] //最大值

 [{MINVALUE n | NOMINVALUE}] //最小值

  [{CYCLE | NOCYCLE}] //循环/不循环

  [{CACHE n | NOCACHE}];//分配并存入到内存中

c)         注意事项

                       i.    NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用

                       ii.   CURRVAL 中存放序列的当前值

                      iii.   NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效

三、序列的使用

a)         将序列值装入内存可提高访问效率

b)         序列在下列情况下出现裂缝:

                       i.  回滚

                       ii. 系统异常

                      iii. 多个表同时使用同一序列

c)         如果不将序列的值装入内存(NOCACHE), 可使用表 USER_SEQUENCES 查看序列当前的有效值

四、修改序列

a)         修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存

例:ALTER SEQUENCE dept_deptid_seq

               INCREMENT BY 20

               MAXVALUE 999999

               NOCACHE

               NOCYCLE;

Sequence altered.

b)         注意事项

           i.     必须是序列的拥有者或对序列有 ALTER 权限

           ii.    只有将来的序列值会被改变

           iii.   改变序列的初始值只能通过删除序列之后重建序列的方法实现

           iv.   使用DROP SEQUENCE 语句删除序列

            v.   删除之后,序列不能再次被引用

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值