Oracle 序列

一、定义

用于提供一系列唯一数字的数据库对象

二、简单序列

2.1 语法

lua 复制代码
create sequence 序列名称

通过序列的伪列来访问序列的值

nextval 返回序列的下一个值

currval 返回序列的当前值

注意:我们在刚建立序列后,无法提取当前值,只有先提取下一个值才能再次提取当前值

2.2 示例

2.2.1 创建

2.2.2 查询序列的下一个值

第一次执行

第二次执行

第三次执行

2.2.3 查询当前序列值

select sql_test.currval from dual

三、复杂序列

3.1 语法

less 复制代码
CREATE SEQUENCE 序列名
    // 递增值n,如果时正数就递增,负数就递减,默认为1
  [INCREMENT BY n] 
  
    // 开始的值,递增默认时minvalue,递减默认时maxvalue
  [START WITH n]
  
    // 最大值 or 最小值
  [{MAXVALUE/ MINVALUE n| NOMAXVALUE}]
  
    // 循环/不循环
  [{CYCLE|NOCYCLE}]
  
    // 分配并存入内存中
  [{CACHE n| NOCACHE}];

3.2 案例

3.2.1 有循环值的最大序列

当序列超过最大值时会报如下错误:

从10开始,每次递增10,最大为100

第一次执行:

第二次执行:

3.2.2 循环的序列

默认循环20次,当增长的值超过最大值时,重新从最小输出

三、修改和删除序列

3.1 修改

注:不能修改序列的start

sql 复制代码
alter sequence 序列名称 maxvalue 5000 cycle

3.2 删除

sql 复制代码
drop sequence 序列名称
相关推荐
Csvn1 小时前
安装、升级与目录结构
后端·nginx
皮皮林5512 小时前
万能通用!权限系统就该这么设计
后端
GoAI3 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
橙子家4 小时前
RESTful 接口:它并非标准或协议,而是一种【架构风格】
后端
小兔子5 小时前
dict.get 的默认值每次都会求值,哪怕键本来就在
后端
斯维赤5 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
肌肉娃子5 小时前
红队攻防测试报告 — wechat-e.cfd
后端
陈随易5 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
海螺_AIHCC5 小时前
SSE 流式返回中文变问号,问题不在编码
后端
panbook5 小时前
从零实现一个时序数据库(一):用 Rust、Arrow 和 Parquet 跑通写入与 SQL 查询
后端