Sequence序列的理解和使用
目录
1、是什么?
2、做什么?
3、不使用的影响?
4、使用的好处?
5、如何使用?
1、是什么?
sequence是用来在多用户环境下产生唯一整数的数据库对象。
2、做什么?
序列产生器顺序生成数字,可用于自动生成主键值,并协调多行或者多表的主键操作。
3、不使用的影响?
没有sequence,顺序的值只能靠编写程序来完成,完成思路如下:。
①、先找出最近产生的值,然后自增长。
②、这种方法要求一个事务级别的锁,这将导致在多用户并发操作的环境下必须有人等待下一个主键值产生,而且方法很容易产生主键冲突的错误
4、使用的好处?
sequence的作用:
1、sequence号是数据库系统按照一定规则自增的数字序列,因为自增所以不会重复。
2、sequence的作用主要有两方面:
①、作为代理主键,唯一识别;
②、用于记录数据库中最新动作的语句,只要语句有动作(IUD等),sequence号都会随着更新,所以我们可以根据sequence号来select出更新的语句。
5、如何使用?
①、说明
create seqence sequence_name
[start with n1] ----------------->start with 生成的第一个n1值
[increment by n2] -----------------> increment by n2 递增量,可以为正整数或负整数,指明每一次增加多少
[maxvalue n3|no maxvalue] ----------------->maxvalue最大值,no maxvalue用于指定序列没有上限
[minvalue n4|no minvalue] ----------------->minvalue 最小值,no minvalue,没有指定最小下限
[cache n5|no cache] ----------------->cache 用高速缓存中可以预分配的序列号个数,默认是20。 如果缓存中的序列号没有用完就关闭数据库等其它原因. 没有使用的序列号就丢失了,所以不能保证序列号是连续的。nocache高速缓冲中不预分配序列号,每次只生成一个序列号,虽然降低了获取序列号的速度,但是可以保证序列号的连续性。
[cycle|no cycle] ----------------->cycle 序列达到最大值或最小值后是否循环。再从n1开始循环,默认不no cycle
[order|no order] ----------------->order用于指定按顺序生成序列,只有在RAC时需要指定,指定ORDER 是为了保证序列号是因为有请求才生成的。在使用序列号做为一个时间戳时很有用,no order是不指定按顺序生成序列(默认)。
②、执行语句
create sequence SEQ_SHARE_ID
minvalue 1 --增长最小值
maxvalue 9999999999 --增长最大值,也可以设置NOMAXvalue -- 不设置最大值
start with 1 --从1开始计数
increment by 1 --自增步长为1
cache 50 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---NOCACHE防止跳号
cycle; --cycle 序列达到最大值或最小值后是否循环。再从n1开始循环,默认不no cycle
Sequence序列的理解和使用相关推荐
- oracle数据库创建Sequence序列
oracle创建sequence序列 -- Create sequence create sequence seq_wds --序列名称(自定义) minvalue 1 --序列最小值 maxv ...
- sequence 序列
sequence(序列)是一组有顺序的元素的集合,可以包含一个或多个元素,也可以没有任何元素(空序列).序列的元素可以是基本数据类型(int,float,complex,bool,string),也可 ...
- PostgreSQL之Sequence序列(转)
本文转载自:https://blog.csdn.net/omelon1/article/details/78798961 Sequence序列 Sequence是一种自动增加的数字序列,一般作为行或者 ...
- PostgreSQL之Sequence序列
原文地址: PostgreSQL之Sequence序列_Frank_lyn的博客-CSDN博客_pgsql sequence PostgreSQL是一种关系型数据库,和Oracle.MySQL一样被广 ...
- 怎样给oracle表设置序列,Oracle的sequence序列在hibernate中的配置方法
Oracle自增序列在Hibernate中的配置方法 在很多情况下,我们使用Hibernate在已经建立好数据库的基础上.在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下 ...
- Oracle中Sequence序列的使用
在oracle中sequence就是序列,每次取的时候它会自动增加.Sequence与表没有关系. 1.Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY ...
- 码分多址(CDMA),码片序列简单理解
码分多址(CDMA): 技术特点 编辑 1.CDMA是扩频通信的一种,它具有扩频通信的以下特点: ⑴抗干扰能力强.这是扩频通信的基本特点,是所有通信方式无法比拟的. ⑵宽带传输,抗衰落能力强. ⑶由于 ...
- GeoGebra笔记10 :Sequence序列
Sequence(表达式,变量,初值,终值,增量) Sequence(n^2,n,1.10,0.2) stroke1用笔划线 Sequence(Rotate(stroke1,(n 30)"a ...
- oracle创建SEQUENCE序列
1.在sql窗口如下写 create sequence SEQ_USER_INFO_ID//你创建的序列的名称 increment by 1 //每次自增长1 start with 1 //默认id从 ...
最新文章
- python 调用 javascript函数
- solaris下使用USB 海量存储设备
- LeetCode Insertion Sort List(单链表插入排序)
- V$SESSION_LONGOPS
- 腾讯安全Blade团队亮相CanSecWest峰会
- shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
- Random Maze HDU - 4067 费用流/可行流
- php fpm工作原理,什么是phpfpm的工作原理?
- response.end后抛了异常_(七)异常处理
- 客户端脚本调用服务器端动态内容,移动到链接显示预览
- 浅谈Nginx性能调优
- centos7下源码安装mysql5.6_Centos7 源码安装mysql5.6
- CMS垃圾回收器总结
- Dbgview退出再打开无法使用的解决办法
- 机器人标准DH建模法
- VMware ESXi 7.0 U3c SLIC 2.6 Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动
- Hibernate(6)——映射类型
- JVM-运行时数据区:Java堆(Heap) 内存管理的核心区
- [iOS]Xcode8 搭建 .framework
- QT做的小游戏,技术成长ing(莫名押韵_dog)