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 序列名称
相关推荐
jay神1 天前
基于SpringBoot的校园社团活动智能匹配与推荐系统
java·前端·spring boot·后端·毕业设计
Elieal1 天前
SpringBoot 中处理接口传参时常用的注解
java·spring boot·后端
程序员侠客行1 天前
Spring集成Mybatis原理详解
java·后端·spring·架构·mybatis
可问春风_ren1 天前
Git命令大全
前端·javascript·git·后端
不是株1 天前
苍穹外卖
后端
短剑重铸之日1 天前
《SpringCloud实用版》 Gateway 4.3.x 保姆级实战:路由 + 限流 + 鉴权 + 日志全覆盖
java·后端·spring cloud·架构·gateway
源代码•宸1 天前
Golang原理剖析(彻底理解Go语言栈内存/堆内存、Go内存管理)
经验分享·后端·算法·面试·golang·span·mheap
高山上有一只小老虎1 天前
mybatisplus实现简单的增删改查方法
java·spring boot·后端
计算机程序设计小李同学1 天前
基于位置服务的二手图书回收平台
java·前端·vue.js·spring boot·后端
Java程序员威哥1 天前
SpringBoot多环境配置实战:从基础用法到源码解析与生产避坑
java·开发语言·网络·spring boot·后端·python·spring