Oracle创建Sequence序列_oracle create sequence-程序员宅基地

技术标签: oracle  Oracle  

202-01-19  Oracle学习之创建序列


一、Oracle版本

Oracle    11.2.0.1.0 - 64bit

Tool        SQLPlus

 

二、序列是啥

通过学习,了解到序列是Oracle数据对象的一种,是以有序增加或者减少相同步长的一组序号,最主要的作用是用来生成数据表 的主键或者唯一键。序列不占用磁盘上的存储空间,是存活在内存上的对象。

创建语法:

CREATE SEQUENCE 序列名称

INCREMENT BY [NUM1]

START WITH [NUM2]

MAXVALUE [NUM3] | [NOMAXVALUE]

MINVALUE [NUM4] | [NOMINVALUE]

NOCYCLE | CYCLE

NOCACHE | CACHE [NUM5]

[ORDER];

 

三、关键字解释:

1. INCREMENT BY NUM1:步长为NUM1,NUM1可以是正数也可以是负数,但都必须是整数,默认为1,不可以是0(为0就失去了序列的意义)。

当NUM1为正数是序列值越来越大,为负数时越来越小。

2. START WITH [NUM2]:定义序列的初始值或起始值NUM2,这是序列的第一个值,默认值是 1。

3. MAXVALUE [NUM3] | [NOMAXVALUE]:定义序列可以生成的最大值NUM3。不设定最大值,则默认为NOMAXVALUE, 递增序列最大值据说是10的27次方;递减序列的最大值是 -1。

4. MINVALUE [NUM4] | [NOMINVALUE ]:定义序列可以生成的最小值NUM4。不设定最小值,则默认为NOMINVALUE,递增序列的最小值为1

5. NOCYCLE | [CYCLE]:定义序列生成的值达到最大时是否循环,NOCYCLE表示不循环,如果一个序列需要很长时间才能用完,可以考虑使用循环序列。下一个循环开始值,在user_sequences中的last_number字段可以查看。

6. NOCACHE | [CACHE] [NUM5]:定义序列是否使用缓存,及缓存块的大小,默认大小为20。连接断开,缓存清空(我猜的,哈哈)。

7. [ORDER]:ORDER选项,定义序列是否按顺序发生,默认为NO。在单实例数据库中没有区别,因为序列一定是按序发生的。在集群环境中,假如缓存Cache=20,实例1取了1-20,存储到内存中;实例2再引用同一序列时,会取21-40...这样在多实例中取到的序列值就会不同,Order定义后集群的每个实例都要按照顺序得到序列值。

 

四、创建示例:

CREATE SEQUENCE S2

INCREMENT BY 2 --步进 2

START WITH 1 --起始值 1

MAXVALUE 20 --最大值 20

MINVALUE -20 --最小值 -20

NOCYCLE  --不循环

NOCACHE; --不进行缓存

 

五、

1. 获取当前序列的值:

select s2.currval from dual;

2. 获取下一个序列的值:

select s2.nextval from dual;

3. 查询用户下有哪些序列:

select * from user_sequences;

 

六、序列创建后可以进行修改:

1. alter sequence s2 increment by -2;  --修改为递减序列

2. alter sequence s2 maxvalue 100;  --修改最大值为100

3. alter sequence s2 cache 30;  --修改为缓存,缓存块大小为30,意为一次缓存最多存储30个序列值到内存中

 

七、知识点总结:

1. 序列是共享的调用,有引用权限的用户都可以引用它。

2. 当事务回滚时,事务中增删改的数据可以回退,但序列不会回退!!!

3. 在一个表中,序列递增的字段值可能会中断、不连续,原因是其它对象引用了这个序列,即使是dual虚拟表的引用。

4. NOCACHE设定时,每次引用序列都需要计算,会消耗性能;CACHE时,只再缓存时计算一次;如果想快速的生成序列值,请将CACHE值加大,实际应用场景,如订单号。

5. 如果想用序列值作为主键,序列一定要定义为NOCYCLE。

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Ezreal_XLove/article/details/112850902

智能推荐

网络故障和网络诊断工具(1.0)_网络诊断工具支持从公网向私网的网络诊断工具发起诊断测试-程序员宅基地

文章浏览阅读8.3k次,点赞6次,收藏41次。网络故障概述在信息化社会里,各企事业单位对网络的依赖程度越来越高,网络随时都可能发生故障,影响正常工作。所以,必须掌握相应的技术及时排除故障。有些单位如电信、电子商务公司、游戏运营商等使用的网络一旦发生故障,若不能及时排除,会产生很大的损失。这些单位一般会安装网络故障管理软件,通过软件来管理和排除网络的故障。从网络故障本身来说,经常会遇到的故障有:物理层故障数据链路层故障网络层故障以太网络故障广域..._网络诊断工具支持从公网向私网的网络诊断工具发起诊断测试

Pixhawk原生固件PX4之日期时间的确定_px4日志日期未知-程序员宅基地

文章浏览阅读2.5k次。19701.1 00:00:00年到2000.1.1 00:00:00有多少秒?软件中哪里给的默认时间2000年的?_px4日志日期未知

Ogre射线精确查询_ogre射线准确求交-程序员宅基地

文章浏览阅读736次。bool PickEntity(Ogre::RaySceneQuery* mRaySceneQuery, Ogre::Ray &ray, Ogre::Entity **result, Ogre::uint32 mask ,Ogre::Vector3 &hitpoint, bool excludeInVisible,const Ogre::String& excludeobject, Ogre::R_ogre射线准确求交

/usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用...-程序员宅基地

文章浏览阅读489次。LIBRARIES+=boost_threadstdc++boost_regexhttps://github.com/rbgirshick/fast-rcnn/issues/52转载于:https://www.cnblogs.com/huhuai/p/10624740.html_/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `tiff

人大金仓数据库KingbaseES dbms_xmlquery包使用技巧--集合元素处理方式_数据库中的xml数据怎么改-程序员宅基地

文章浏览阅读842次,点赞22次,收藏19次。在目前的KingbaseES的使用过程中,我们会遇到数据库需要存储XML格式的数据,或者需要对查询的数据进行转换的问题,XML格式的数据类似于HTML格式数据,XML是一种扩展标记语言,最早于1998年被引入软件工业界,它不仅可以在WEB前端使用还可以应用于后端数据处理以及数据库存储等。_数据库中的xml数据怎么改

rtc-sfu_rtc sfu-程序员宅基地

文章浏览阅读581次。SFU 的全称是:Selective Forwarding Unit,是一种通过服务器来路由和转发 WebRTC 客户端音视频数据流的方法。如图所示,SFU 服务器最核心的特点是把自己 “伪装” 成了一个 WebRTC 的 Peer 客户端,WebRTC 的其他客户端其实并不知道自己通过 P2P 连接过去的是一台真实的客户端还是一台服务器,我们通常把这种连接称之为 P2S,即:Peer to Server。_rtc sfu

随便推点

linux中crontab定时执行脚本_cron 每周日凌晨6点执行-程序员宅基地

文章浏览阅读6.4k次。阅读目录1. cron服务【Ubuntu环境】 2. crontab用法 3. 编辑crontab文件 4. 流程举例 5. 几个例子Linux中,周期执行的任务一般由cron这个守护进程来处理。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。回到顶部1. cron服务【Ubu..._cron 每周日凌晨6点执行

时间序列入门学习-02 常用统计学概念及公式-程序员宅基地

文章浏览阅读77次。学习过程中涉及很多统计学公式,然而过去快10年,忘得一干二净,借此文复习一下叭~

CAD异常eNotOpenForWrite-程序员宅基地

文章浏览阅读6.6k次,点赞2次,收藏2次。之前在实际工程中查一个软件崩溃的问题,具体调试到的位置是AcDbDatabase::saveAs函数,应该是将数据库保存回CAD图纸时触发了CAD的"eNotOpenForWrite"报错随后软件崩溃。根据以往的使用情况来看,saveAs函数一般不会导致CAD的报错,且在具体测试后,确定只有该工程中一张特定图纸打开时,调用功能会导致异常发生。其他图纸操作一切正常,包括在打开其他图纸的情况下,对该特_enotopenforwrite

Android10系统中dialog.isShowing返回false问题-程序员宅基地

文章浏览阅读1.6k次。问题现象: 伪代码 使用流程 AcrtivityA– > DialogFragment– > ActivityB– > back to ActivityA { if ( getDialog().isShowing() ){ DialogFragment.dismiss()} } 发现Android9系统环境下 BaseJDDialogFragment调用getDialog().isShowing,返回为true,而Android10系..._android10系统中dialog.isshowing返回false问题

Snipaste 截图工具快捷键大全_snipaste截图快捷键-程序员宅基地

文章浏览阅读1.5k次。下载地址 f1 截图 c 复制_snipaste截图快捷键

敏感目录收集工具_cracer安全工具包密码-程序员宅基地

文章浏览阅读759次。敏感目录收集mysql管理接口后台目录上传目录phpinforobots.txt---->列出防爬行目录安装包安装页面---->index.php爬行Cracer渗透工具包6.0下载链接:https://pan.baidu.com/s/1ac-t-EMrl89aGJMm3pYS5w 密码:a8f11.御剑后台目录扫描    御剑是一款好用的网站后台扫描工具,图..._cracer安全工具包密码