序列的使用

news2024/11/18 9:46:41

目录

序列的创建

序列的使


Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645

在许多数据库之中都会存在有一种数据类型 — 自动增长列,它能够创建流水号。如果想在 Oracle 中实现这样的自动增长列,可以使用序列的方式完成

序列的创建

create sequence 序列名称
[MAXVALUE 最大值 | NOMAXVALUE]
[MINVALUE 最小值 | NOMINVALUE]
[INCREMENT BY 步长 ] [START WITH 开始值 ]
[CYCLE | NOCYCLE]
[CACHE 缓存个数 | NOCACHE] ;

MAXVALUE :可选项,定义序列的最大值

MINVALUE :可选项,定义序列的最小值

START WITH 开始值:可选项,定义序列的开始值

INCREMENT BY 步长:可选项,定义序列每次增加值

CYCLE :可选项,表示当序列增加到最大值或者减少到最小值的时候,重新从开始值继续

CACHE :可选项,表示是否产生序列号预分配,并存储在内存中

序列属于数据库对象的创建过程,属于 DDL 的分类范畴。对于序列而言,创建之后一定会在数据字典中保存

CREATE SEQUENCE myseq ;

 上面代码创建一个序列,名字为 myseq,所有参数都取默认值

既然序列的对象信息会在数据字典中保存,那么现在就可以查询序列的数据字典

SELECT * FROM user_sequences ;

SEQUENCE_NAME :序列名称,本次为 MYSEQ

MIN_VALUE :当前序列的最小值,本次为 1

MAX_VALUE :当前序列的最大值,本次为“1.0000E+28”

INCREMENT_BY :每次序列增长的步长内容

CY :是否为循环序列,本次为“N”

OR :是否需要排序

CACHE_SIZE :缓存个数,默认为 20 个

LAST_NUMBER :最后的数值。现在序列已经创建成功了,如果要想使用序列则可以使用如下的两个伪列完成

nextval :取得序列下一个内容,每一次调用序列的值都会增长

currval :表示取得序列的当前内容,每一次调用序列不会增长,如果要想使用此伪列,那么在使用之前必须首先使用 nextval 取得内容才可以。

只有运行了 nextval 之后才表示内容真正可以使用 

序列的使

CREATE TABLE mytab(
	id		NUMBER ,
	name	VARCHAR2(50)  ,
	CONSTRAINT pk_id PRIMARY KEY(id)
) ;

 此时的数据表与原始相比没有任何区别,但是在数据增加的时候,由于 id 属于一个主键列,所以可以利用序列来生成 id 的内容

INSERT INTO mytab(id,name) VALUES (myseq.nextval,'HELLO') ;

以上的操作是序列在实际开发中使用最多的一种情况,但是从序列的创建语法来讲,并不是这么简单,所以下面需要对序列进行进一步的分析

那么首先需要来解决缓存的作用是什么

在序列的操作过程中,为了保证序列操作的性能问题,会利用缓存在用户未使用到指定的序列值时自动将内容创建好,这样用户在使用序列中就不是一起创建的了,从而达到性能的提升

但是缓存本身会存在一个丢号的问题,如果数据库关闭了,那么序列的内容就可能无法连续了,称此为丢号问题

但是以上所创建的只是标准的序列,而实际上序列也可以创建一些特殊情况

DROP SEQUENCE myseq ;
CREATE SEQUENCE myseq 
INCREMENT BY 2 ;

上面代码中,“DROP SEQUENCE myseq ”表示删除序列的代码,然后创建一个新的序列,步长为 2

DROP SEQUENCE myseq ;
CREATE SEQUENCE myseq 
INCREMENT BY 2
START WITH 100000 ;

上面代码中,创建的序列开始值为 100000,增加的步长为 2。

在序列的使用过程中还可以创建一个循环序列,例如希望序列可以在 1、3、5、7、9 之间循环显示,所以此时就需要设置序列的最大值 9、最小值 1,而且设置为循环

DROP SEQUENCE myseq ;
CREATE SEQUENCE myseq 
INCREMENT BY 2 START WITH 1 
MINVALUE 1 MAXVALUE 9
CYCLE NOCACHE;

从实际情况来说,序列的使用往往都不需要这么复杂,生成一个流水号就够了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习几个地图组件(基于react)

去年开发时用的公司封装的地图组件,挺方便的,但是拓展性不强,所以看看有哪些优秀的开源地图组件吧 1、React Leaflet 介绍:开源的JavaScript库,用于在web上制作交互式地图,允许你使用React组件的方式在应…

基于JavaWeb+BS架构+SpringBoot+Vue+O2O生鲜食品订购小程序系统的设计和实现

基于JavaWebBS架构SpringBootVueO2O生鲜食品订购小程序系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图 文末获取源码 Lun文目录 目 录 摘 要 I Abstract II 1 绪 论 1 1.1课题研究背景及意义 1 1.2研究现状 1 1.3本论文的主要论文结构 3 2系统相关技术…

03-Java面试题八股文-----java基础——10题

41、HashMap 的长度为什么是 2 的 N 次方呢? 为了能让 HashMap 存数据和取数据的效率高,尽可能地减少 hash 值的碰撞,也就是说尽量把数据能均匀的分配,每个链表或者红黑树长度尽量相等。 我们首先可能会想到 % 取模的操作来实现。…

鸿蒙Harmony应用开发—ArkTS(@Builder装饰器:自定义构建函数)

前面章节介绍了如何创建一个自定义组件。该自定义组件内部UI结构固定,仅与使用方进行数据传递。ArkUI还提供了一种更轻量的UI元素复用机制Builder,Builder所装饰的函数遵循build()函数语法规则,开发者可以将重复使用的UI元素抽象成一个方法&a…

代码+视频,R语言logistic回归交互项(交互作用)的可视化分析

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技,几乎在高分的SCI中必出现,因为把人群分为亚组后再进行统计可以增强文章结果的可靠性,不仅如此,交互作用还可以使用来进行数据挖掘。在既往文章中,我们已…

AJAX踩坑指南(知识点补充)

JWT JSON Web Token是目前最为流行的跨域认证解决方案 如何获取:在使用JWT身份验证中,当用户使用其凭据成功登录时,将返回JSON Web Token(令牌) Token本质就是一个包含了信息的字符串 如何获取Token:登录成功之后,服务…

论文阅读之LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS(2021)

文章目录 论文地址主要内容主要贡献模型图技术细节实验结果 论文地址 LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS 主要内容 这篇文章的主要内容是介绍了一种名为LoRA(Low-Rank Adaptation)的技术,这是一种针对大型语言模型进行…

0201线性方程组和矩阵-矩阵及其运算-线性代数

文章目录 一、线性方程组二、矩阵的定义结语 一、线性方程组 设有 n 个未知数 m n个未知数m n个未知数m个方程的线性方程组 { a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 , a 21 x 1 a 22 x 2 ⋯ a 2 n x n b 2 , ⋯ a m 1 x 1 a m 2 x 2 ⋯ a m n x n b m , \begin{ca…

Microsoft Edge 中的 Internet Explorer 模式解决ie禁止跳转到edge问题

作为网工,网络中存在很老的设备只能用ie浏览器访问打开,但是win10后打开Internet Explorer 会强制跳转到Edge 浏览器,且有人反馈不会关,为此找到了微软官方的Microsoft Edge 中的 Internet Explorer 模式,可以直接在Mi…

Pytest测试框架+allure+jenkins自动化持续集成

Pytest是python的一种单元测试框架,可通过pytest 目录路径来运行测试用例 可以通过断言assert来测试是否通过 1.pytest测试用例命名规范 需严格遵循此规范,不然使用 pytest 目录 来运行会找不到该条测试用例。 可通过这样定义main函数&#xf…

OpenHarmony游戏应用程序-实现的一个手柄游戏

介绍 本篇Codelab是基于TS扩展的声明式开发范式编程语言,以及OpenHarmony的分布式能力实现的一个手柄游戏。 说明: 本示例涉及使用系统接口,需要手动替换Full SDK才能编译通过。 完成本篇Codelab需要两台开发板,一台开发板作为游…

python 函数(解包**、互相调用、作用域、函数的封装、内置函数:eval()、zip()、文件处理open())

函数解包 """ 1、函数的注释:参数和返回值 在注释里可以自动添加显示,只需手动加说明。2、函数的解包【拆包】:函数的参数要传递数据有多个值的时候,中间步骤拿到数据 保存在元组或者列表 或者字典里。 - 传递参数…

【超全详解】Maven工程配置与常见问题解决指南

Maven工程 目录 Maven工程一、如何检查Maven工程是否配置正确?1、检查路径2、检查基本配置3、其他配置 二、Maven的基本操作基本操作install和package的区别 三、获取别人的Maven工程之后如何修改?四、如何正确写好配置文件?1.寻找配置资源2.…

css的active事件在手机端不生效的解决方法

需求:需求就是实现点击图中的 “抽奖” 按钮,实现一个按钮Q弹的放大缩小动画 上面是实现的效果,pc端,点击触发 :active 问题:但是这种方式在模拟器上可以,真机H5一调试就没生效了,下面是简单…

图像几何变换(仿射变换和透视变换...)及python-opencv实现

文章目录 图像变换类型仿射变换透视变换python-opencv实现参考文献 图像变换类型 图像几何变换主要包括以下几种类型: 平移(Translation):将图像在水平或垂直方向上移动,不改变图像的尺寸和形状。缩放(Sca…

【深度学习】基于机器学习的无机钙钛矿材料形成能预测,预测形成能,神经网络,回归问题

文章目录 任务分析数据处理处理离散数值处理缺失值处理不同范围的数据其他注意事项 我们的数据处理模型训练网页web代码、指导 任务分析 简单来说,就是一行就是一个样本,要用绿色的9个数值,预测出红色的那1个数值。 数据处理 在进行深度数…

linux命令详解——uniq,wc,tr

uniq uniq可以对查看内容去重 但在我们使用时会发现,uniq的去重逻辑是,当遇到连续多行内容相同时,去除重复行,而对间隔重复内容,无法实现去重功能 这里想到可以将sort与uniq结合使用,先对文件内容进行排序…

Visual Studio 插件 AnAPI++ for VS 2022

Anmial API abbreviation AnAPIis an automatically generated WebAPI project that has encapsulated Jwt Oauth2 token authentication, SqlSugar, Swagger, Nlog, Cross domain technologies, and supports Net6 and above versions Anmial API缩写AnAPI是一个自动生成的Web…

嵌入式开发--STM32G431RBTx-定时器中断流水灯

嵌入式开发–STM32G431RBTx-定时器中断流水灯 定时器工作原理 如图有反映stm32g431的定时器资源。 共10个定时器 定时器定时器类型个数TIM6,7基本定时器2TIM2,3,4全功能通用定时器3TIM15,16,17通用定时器(只有1或2个…

uniapp安装axios

先npm安装 npm i axios然后在项目里面建一个utils文件,再建一个index.js 以下是index.js代码: import axios from axios; const service axios.create({baseURL: //xxxx.xxxxx.com///你的请求接口域名, timeout: 6000, // request timeoutcrossDomai…