在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数目。

可以很简单的Drop Sequence

DROP SEQUENCE order_seq;

原文:http://my.oschina.net/u/1866821/blog/299970

oracle创建表时创建序列号,oracle表中怎么建序列相关推荐

  1. kettle使用mysql作为资源库报错 创建资源库时只有25张表,原本应该46张表。

    kettle使用mysql作为资源库报错 创建资源库时只有25张表,原本应该46张表. 连用户表都没有 ,导致连 默认的 admin和guest都无法登陆自己的资源库!!!! 问题是 SQL语句里边使 ...

  2. mysql 创建表普通索引_MySQL索引篇,创建表时创建索引

    索引对于MySQL数据库查询速度具有无可取代的作用,一个合适的索引能给数据查询的效率带来巨大的提升,本文来给大家讲讲如何创建索引,索引的最佳创建方式是在建表的时候就确定好要索引的字段并建立好索引. 索 ...

  3. Unknown column 'password_lifetime' in 'field list';创建数据库时创建用户,修改用户时报错

    Unknown column 'password_lifetime' in 'field list'创建数据库时创建用户,修改用户时报错 xampp安装较新的版本,通过xampp安装MySQL的是Ma ...

  4. Java 创建文件时 创建文件夹

    问题描述 创建文件时因为没有此文件夹 报异常 解决方案: // 文件路径 String filePath = "E:\\tmp\\upload\\test.txt";File de ...

  5. mysql 建表时创建唯一索引

    Mysql建表与索引使用规范整理 一,设计表规范: MySQL建表,字段需设置为非空,需设置字段默认值: MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL: MySQL建表,如果 ...

  6. oracle安装时配饰失败了,【求助】急!!!!oracle客户端安装时创建实例失败

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 信息: INFO: Registering the flow data beans信息: INFO: [INS-07001] 在 BeanStore 中找 ...

  7. oracle实例创建失败,【求助】急!!!!oracle客户端安装时创建实例失败

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 信息: INFO: Registering the flow data beans信息: INFO: [INS-07001] 在 BeanStore 中找 ...

  8. oracle插入数据时换行,在oracle里如何去掉数据后的回车换行符

    1.创建测试表, create table test_huiche(id varchar2(20), value varchar2(20)); 2.插入测试数据,部分值含回车换行符: insert i ...

  9. oracle 不带时分秒,关于Oracle数据库不带日期中时分秒的查询

    关于Oralce数据库 的日期时间查询: 下面我们先来看一组日期数据 表:myDate 列:time; 1998-8-7 23:45:33.3 1998-8-7 11:22:21.5 1998-8-7 ...

最新文章

  1. 电动汽车换电的优缺点分析
  2. python __call__一般用在哪些地方_Python __call__内置函数的作用和用法
  3. zblog音频MP3播放器插件
  4. htm怎么让图片和搜索框在同一行_对于优化来说,内链应该怎么使用你知道吗?...
  5. 2-1 如何抓不同的接口(手机抓包,web网页抓包)
  6. atitit.java解析sql语言解析器解释器的实现
  7. 计算机 pps,计算机及其基本功能.pps
  8. C# 多线程BackgroundWorker
  9. 宇视网络视频录像机添加第三方摄像机的配置方法
  10. Ubuntu16.04 解决外置USB蓝牙模块链接蓝牙耳机没有声音输出问题
  11. 大雪坪剑来 Spring Cloud 教程(二):Spring Boot 集成 mybatis 实现增删改查
  12. 百度地图API获取行政区域边界(省、市、区县)
  13. Vue01介绍+数据双向绑定+生命周期+什么是BootCDN+代码示例
  14. tensorflow中sigmod激活函数
  15. hdu6105(博弈)
  16. mysql中高阶玩法系列(八)
  17. 独立游戏制作人的罗生门
  18. Redis从生米煮成熟饭
  19. mysql 去除全角空格_去除字符串内多余空格
  20. 基于模糊补偿的液压机械臂轨迹跟踪控制

热门文章

  1. 安装 PyCharm
  2. Spark2.11 两种流操作 + Kafka
  3. 用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)
  4. _xmlXPathNewContext, referenced from
  5. 网络分层协议图以及各层的简介
  6. Java Scanner 类、异常处理 总结
  7. winform实现Echart统计图(基于webBrowser)
  8. dataGridView使用指南系列一、回车换行或换列完美解决方案
  9. [原]iBatis.Net(C#)系列一:简介及运行环境
  10. ASP.NET-自定义HttpModule与HttpHandler