在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 emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000后从头开始
NOCACHE;
影响sequence的初始化参数:
sequence_CACHE_ENTRIES =
设置能同时被cache的sequence数目。
可以很简单的Drop sequence
DROP sequence order_seq;
结束
- 浏览: 88325 次
- 性别:
- 来自: 北京
文章分类
最新评论
发表评论
-
代码洁癖症的表现
2013-08-26 16:47 707有下列情形之一的,你患上了代码洁癖症。症状程度可轻可重,轻者 ... -
java中的vo 、dto 、dao(转自yinchunjian)
2013-08-26 15:51 1163VO是跟数据库里表的映射,一个表对应一个VO DAO是用V ... -
跨站请求伪造CSRF防护方法
2013-08-22 11:03 579CSRF(Cross-site request forger ... -
java日志框架之log4j详解
2013-06-26 22:08 1968一、 Log4j的架构 Log4j系统的三大板块:日志写 ... -
java日志框架
2013-06-26 22:04 767Log4j Apache的一个开放 ... -
同步与异步传输定义与区别
2013-06-03 16:31 763同步与异步传输的区别 ... -
HTTP状态码的含详细列表: 200:400:403:404:408:500
2013-05-28 15:07 1520http状态代码含义表: 100 - 表示已收到请求的 ... -
遍历list的几种方法
2013-05-24 15:02 777List<A> list ... -
Java 中 Listener监听器作用和过滤器的作用,以及区别
2013-05-08 15:10 78451.1 Listener对象分类Servlet的Li ... -
java程序防止sql注入
2013-04-23 11:33 2187第一种采用预编译语句集,它内置了处理SQL注入的能力 ... -
字符集和编码乱码解决方案(转)
2013-03-20 11:01 1040中文乱码:在以后学习过程中全部采用UTF-8 1、文件的乱码 ... -
Xss跨站脚本经验总结Cross Site Scripting
2013-03-20 17:52 1206最近这段时间我所在的公司让我搞一些有关网络安全方面的东西, ... -
防止SQL注入安全性解决方案(转)
2013-03-05 13:33 20831.SQL注入了解及防范 ... -
http与https的区别(转)
2013-03-05 13:31 758在URL前加https://前缀表明是用SSL加密的。你的 ... -
数据绑定总结(1)
2013-02-20 10:42 8541.@RequestParam 绑定单个请求参数值 2 ... -
Maven 环境的配置
2013-02-18 16:37 815现在Java新架构的不断出现,例如St ... -
springMVC自定义属性编辑器-转
2013-01-31 17:38 2337自定义springMVC的属性编辑器主要有两种方式,一种是使 ... -
Spring MVC 3 深入总结-转
2013-01-29 15:47 2106一、前言: 大家好,Spring3 MVC是非常优秀的M ... -
hibernate lazy机制
2013-01-25 21:38 974hibernate的lazy怎么用 ... -
Java线程:并发协作-生产者消费者模型
2013-01-22 15:10 924对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是 ...
相关推荐
在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 1、Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTest INCREMENT...
主要介绍了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、为表创建自增长自段有两种,一种是不同的表使用各自的Sequence,方法如下: 1、在Oracle sequence首先创建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20; 2、在你的hbm....
序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列, 序列中的可以升序生成,也可以降序生成。创建序列的语法是: 语法结构:创建序列 CREATE SEQUENCE sequence_name [START WITH ...
还是老老实实用存储过程来取得一个Sequence值吧,使用起来也就随心所欲了。 网上常见的一个存储过程为 为当前库所有用到Sequence建一张表,譬如“AllSequence”,内含四个字段【名字,起点值,递增值,当前值】,...
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方接下来为大家介绍下Oracle创建自增字段方法感兴趣的各位可不要错过了哈
这边之前一直是使用oracle,各种订单号、流水号、批次号啥的,都是直接使用oracle的sequence提供的数字序列号。现在数据库更换成Mysql了,显然以前的老方法不能适用了。 需要新写一个: •分布式场景使用 •满足一定...
│ oracle中判断某列是否为数字,删除重复数据的方法 - oracle天堂 - CSDN博客.mht │ oracle体系结构.txt │ oracle学习 - zgh2002007的专栏 - CSDN博客.mht │ Oracle学习笔记(chstone原创).mht │ ORACLE学习...
给大家分享MyBatis Oracle 自增序列的实现方法及mybatis配置oracle的主键自增长的方法,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...
本方法为使用SEQUENCE(序列) 例如有表temp_test结构为: create table TEMP_TEST ( id number, nm varchar(10), primary key(id) //id为主键,下面的方法把它设为自增字段 ) 1、建立...
下面通过本文给大家介绍JDBC4.0操作Oracle中BLOB类型的数据的方法。 需要的jar包 使用ojdbc6.jar 在/META-INF/MANIFEST.MF里可以看到Specification-Version: 4.0 建表 create sequence seq_blobmodel_id start ...
§15.4 在 PL/SQL 中使用 sqlcode,sqlerrm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑...
1.3.6 序列(Sequence) 17 1.3.7 数据库链(Database Link) 17 第2章 管理ORACLE数据库 19 2.1 启动与关闭 19 2.1.1 权限 19 2.1.2 ORACLE的四中状态 20 2.1.3 启动数据库 20 2.1.4 关闭数据库 22 2.2 应用开发...
mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错eg:select name,count(money) from user;这个放在mysql中没有...
序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被...
重置oracle序列从指定数字开始 代码如下: declare n number(10); v_startnum number(10):=10000001;–从多少开始 v_step number(10):=1;–步进 tsql varchar2(200); v_seqname varchar2(200):=’MIP_JF_SEQUENCE’;...