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 序列名称
相关推荐
IT_陈寒38 分钟前
Vite项目build后路由404了?你可能漏了这个小配置
前端·人工智能·后端
宸津-代码粉碎机1 小时前
Spring AI企业级实战|从RAG优化到Agent多工具调度
java·大数据·人工智能·后端·python·spring
吴佳浩1 小时前
AI Infra 的真相:Go 没输,rust也不是取代
后端·rust·go
喵个咪1 小时前
实时游戏网络协议深度对比:KCP vs WebRTC vs WebSocket
后端·websocket·webrtc
普通网友2 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
QuZero2 小时前
Guava Cache Deep Dive
java·后端·算法·guava
leeyi2 小时前
SSE 实时推流 —— Token 怎么一个个蹦出来
后端·agent
leeyi2 小时前
ReAct 循环的 50 行 Go 实现,逐行拆解
后端·agent
leeyi2 小时前
HITL:让人类随时叫停 AI,并且能优雅地继续
后端·agent
用户34232323763172 小时前
采集网关的离线缓存与断点续传——当网络不可靠时,数据一条都不能丢
后端