Oracle序列

简介

  • 序列是用于生成唯一的,连续号的对象
  • 序列可以是升序的,也可以是降序的
  • 使用create sequence语句创建序列
create sequence  toys_seq
		start with 10
		increment by 10
		maxvalue 2000
		minvalue 10
		nocycle
		cache 10;

start with:起始位置
increment by:每次递增
maxvalue: 最大值
minvalue:最小值
nocycle:是否循环使用
cache:缓存,预先分配的

使用序列:

- 通过序列的伪劣来访问序列的值
- nextval:返回序列的下一个值
- currval:返回序列的当前值
--实例
insert into student values(toys_seq.nextval,'张三',18)

更改和删除序列:

使用alter sequence 语句修改序列,不能修改序列的start with参数

SQL>alter sequence toys_seq maxvalue 5000 cycle;

使用drop sequence

SQL>drop sequence toys_seq;

SYS_GUID函数:

  • 生成32位的唯一编码作为主键
  • 源自不需要对数据库进行访问的时间戳和机器标识符
  • 一个显著的不足之处,管理这些值会变得很困难

序列与SYS_GUID函数的区别:

  • 在不需要并行或远程环境中使用序列作为主键
  • 在并行的环境下,或希望避免使用序列,情况下使用函数
  • 不同的数据库中但需要再后来进行数据合并一起的情况下使用SYS_GUID函数

总结:

  • 在单一环境中使用序列作为表的主关键字
  • 在并行环境或者远程环境中选择SYS_GUID函数作为表的主关键字
  • 在第一次使用序列时一定是用nextval进行初始化
  • 修改序列是不可以修改start with
  • 序列与SYS_GUID函数使用的不同场合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值