Oracle序列的创建和使用

在SQL Server和MySql中,主键ID可以设置自增长,在oracle中不同,序列个人理解就相当SQL Server和MySql中的自增长。

创建序列

如何创建,语法:

create sequence seq

       increment by 1  :每次增长的数值

       start with 1  :从哪个值开始增长,也就是起始值

       maxvalue 1000:序列最大值nomaxvalue就是没有最大值

       minvalue 1:最小值, 同样nominvalue就是没有最小值

       cycle : 是否需要循环,nocycle就是不循环

       cache是否缓存,nocache就是不缓存,默认20

序列使用

currval:表示序列的当前值,新序列必须使用一次nextval 才能获取到值,否则会报错,报错信息如图

nextval:表示序列的下一个值


在添加操作中使用序列,在对应的位置直接用序列名.nextval
table_name:表名,seq_name:序列名

INSERT INTO table_name values(seq_name.nextval,....)

序列使用时会在以下情况出现裂缝:
    1、回滚
    2、系统异常
    3、多个表同时使用同一序列

查看序列

通过查看user_sequences表来查看已创建的序列
如果指定NOCACHE 选项,则列LAST_NUMBER 显示序列中下一个有效的值

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

修改序列

使用alter sequence修改序列,后面接序列名,然后就是你要修改的选项
已产生的序列不会修改,修改的是将来的序列值
另外改变序列的初始值只能通过删除序列之后重新创建的方式实现

alter sequence seq_name
...

删除序列

使用drop sequence删除序列,后面也是接序列名

drop sequence seq_name

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值