ORACLE SEQUENCE 介绍
在oracle中sequence就是所谓的序列号,每次取的时候它会自己主动添加,一般用在须要按序列号排序的地方。
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1開始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
一旦定义了emp_sequence,你就能够用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=添加sequence的值,然后返回 sequence 值
比方:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
能够使用sequence的地方:
- 不包括子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的VALUES中
- UPDATE 的 SET中
能够看例如以下样例:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
可是要注意的是:
- 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自己主动添加你定义的INCREMENT BY值,然后返回添加后的值。CURRVAL 总是返回当前SEQUENCE的值,可是在第一次NEXTVAL初始化之后才干使用CURRVAL,否则会出错。一次NEXTVAL会添加一次SEQUENCE的值,所以假设你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。明确?
- 假设指定CACHE值,ORACLE就能够预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自己主动再取一组到cache。 使用cache也许会跳号, 比方数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以能够在create sequence的时候用nocache防止这样的情况。
2、Alter Sequence
你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才干修改sequence. 能够alter除start至以外的全部sequence參数.假设想要改变start值,必须 drop sequence 再 re-create .
Alter sequence 的样例
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000后从头開始
NOCACHE ;
影响Sequence的初始化參数:
SEQUENCE_CACHE_ENTRIES =设置能同一时候被cache的sequence数目。
能够非常easy的Drop Sequence
DROP SEQUENCE order_seq;
ORACLE SEQUENCE 介绍相关推荐
- oracle你如何重置序列号,oracle sequence语句重置方介绍
在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下 Oracle重置sequence语句1 Sql代码 复制代码 ...
- oracle复制sequence,oracle sequence语句重置方介绍
在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下 Oracle重置sequence语句1 Sql代码 DECL ...
- Oracle Sequence
Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequence是数据库系统的特性,有的数据库有Sequence,有的没有.比 ...
- oracle sequence 应用,oracle应用之使用sequence批量写数据
本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓: 学如逆水行舟,不进则退 先介绍oracle sequence的一 ...
- ORACLE sequence各参数及创建修改删除使用详解示例
ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,可以用sequence序列实现. CREATE SEQUENCE语句及参数介绍: 详见官方文档:http://docs.oracle ...
- 基于Oracle Sequence的流水号生成规则
流水号在各种系统中随处可见,一般都是使用自增.年月日时分秒+自增.UUID等,要么纯数字,要么纯字母,这种流水号缺乏一定的辨识度. 下面为大家介绍一种具有辨识度的流水号的生成方式:领域或者应用的标识 ...
- sequence oracle mysql,oracle sequence转mysql(mysql实现oracle的sequence功能)
最近项目上在做数据转移工作,需要把oracle转为mysql,在转换oracle储存过程中遇见这样一句sql,查的是序列号的下一个值 由于mysq只有递增列的概念没有oracle的sequence功能 ...
- oracle SEQUENCE 创建, 修改,删除
oracle创建序列化: CREATE SEQUENCE seq_itv_collection INCREMENT BY 1 -- 每次加几个 S ...
- 【转】oracle sequence
原文链接 http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html ORACLE SEQUENCE用法 在oracle中sequen ...
最新文章
- 【Mac】解决「无法将 chromedriver 移动到 /usr/bin 目录下」问题
- GitLab成立中国合资公司极狐,强调“独立运营”
- 原核表达常见问题解答
- ASP.NET MVC3 Razor视图引擎-基础语法
- idea提示 cannot resolve symbol “println
- Apache Server和JMeter调试
- Qt之QThread用法
- 蒙了吗?offsetLeft、offsetWidth、scrollTop、scrollWidth、event.pageX
- java中fitlter,068.Python框架Django之DRF视图集使用
- 《HTML and CSS Design and Build Websites》学习笔记之HTML5表单新增功能
- 无线路由器CE认证是什么
- systrace简介
- 大学生HTML作业篮球网页 HTML作业篮球网页期末作业 HTML+CSS篮球网页 HTML学生作业体育篮球网页
- 【光纤传输特性】图文并茂,你该了解这些
- Python+Selenium程序执行完,chrome浏览器自动关闭解决方案
- Meltdown Reading Kernel Memory from User Space
- 哔哩哔哩2020校招原题 - 复数乘法
- 数据驾驶舱只是面子工程?它的真正作用你根本就不了解
- Vue 视频播放与暂停
- SpringMVC个人理解(downpour 的SpringMVC深度探险的个人整理)