序列(Sequence)

序列(Sequence)

什么是序列

序列是用户创建的数据库对象,序列会产生唯一的整数。序列的一个典型的用途是创建 一个主键的值,它对于每一行必须是唯一的。序列由一个 Oracle 内部程序产生并增加或减 少。

序列是一个节省时间的对象,因为它可以减少应用程序中产生序列程序的代码量。序列 号独立于表被存储和产生,因此,相同的序列可以被多个表使用。

操作序列

查询序列

--查询序列
SELECT sequence_name, increment_by, max_value, min_value, last_number
FROM user_sequences;

使用序列

NEXTVAL 和 CURRVAL 伪列

  • NEXTVAL 返回下一个可用的序列值,它每次返回一个唯一的被引用值,即使对于 不同的用户也是如此

  • CURRVAL 获得当前的序列值

  • 在 CURRVAL 获得一个值以前,NEXTVAL 对该序列必须发布

在 locationID2500 中插入一个新部门名称 Support。

--在 locationID2500 中插入一个新部门名称 Support。 
insert into departments(department_id, department_name, location_id) values(dept_seq.nextval, 'Support', 2500);

修改与删除序列

修改序列

ALTER SEQUANCE dept_deptid_seq
	increment by 20
	maxvalue 9999999
	nocache
	nacycle

修改序列的原则

必须是被修改序列的所有者,或者有 ALTER 权限。

用 ALTER SEQUENCE 语句,只有以后的序列数会受影响。

用 ALTER SEQUENCE 语句,START WITH 选项不能被改变。为了以不同的数重新开 始一个序列,该序列必须被删除和重新创建。

将 dept_seq 序列中的增长量修改 20,最大值修改为 999999。

--将 dept_seq 序列中的增长量修改 20,最大值修改为 999999。
alter sequence dept_seq
      increment by 20
      maxvalue 999999
      nocache
      nocycle

删除序列

删除 dept_seq 序列

drop sequence dept_seq; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值