1.    About Sequences(关于序列)

序列是数据库对象一种。

多个用户能够通过序列生成连续的数字以此来实现主键字段的自己主动、唯一增长,而且一个序列可为多列、多表同一时候使用。

序列消除了串行化而且提高了应用程序一致性。(想象一下没有序列的日子怎么办?)

2.   Creating Sequences(创建序列)

前提:Prerequisites

To create a sequence inyour own schema, you must have the CREATE SEQUENCE system
privilege. 在自己模式下创建序列须要create sequence权限

To create a sequence inanother user's schema, you must have the CREATE ANY SEQUENCE system
privilege. 在其它用户模式下创建序列须要create any sequence权限。

语法:Syntax



假设不加条件语句,默认创建的序列格式例如以下:

-- Create sequence

create sequence SEQ_T

minvalue  1

maxvalue  999999999999999999999999999

start  with  1

increment  by  1

cache  20;

语义Semantics:

INCREMENT BY指定序列增长步长。

能够为正(升序)、负整数(降序)。但不能为0。

最高精度28。

START WITH: 指定序列起始数。默觉得序列最小值。

MAXVALUE :指定序列最大值。

最大28位。

必须大于等于起始值且大于等于序列最小值。

NOMAXVALUE:  无最大值(实际为10^27或-1)。default

MINVALUE :指定序列最小值。

NOMINVALUE  :无最小值(实际为1或-10^26)。Default

CYCLE  :指定序列达到最大值或最小值后继续从头開始生成。

NOCYCLE :不循环生成。Default.

CACHE :指定数据库内存中预分配的序列值个数,以便高速获取。最小cache值为2。

Cache參数最大值为:

(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

注意1:假设系统发生问题。全部缓存的没有被DML语句使用并提交的序列值将丢失。潜在丢失值数量等于cache的数量。

NOCACHE  :不指定缓存数,默认缓存20

ORDER :指定order条件保证序列按请求顺序生成。

此条件适用于RAC环境。

NOORDER :不保证序列按请求顺序生成。

 

样例:

CREATE SEQUENCE customers_seq
 START WITH     1000
 INCREMENT BY   1
 NOCACHE
 NOCYCLE;

 

注意2:带有cycle条件序列当达到最大值后,下一个值从最小值minvalue開始循环!

CREATE  SEQUENCE seq1

START  WITH  200

INCREMENT  BY  10

MAXVALUE  200

CYCLE

NOCACHE;

SELECT  seq1.nextval   FROM dual;

结果:1

3.   ALTER SEQUENCE(改动序列)

 

前提:

The sequence must be in your own schema, or youmust have the ALTER object
privilege on

the sequence, or you must have the ALTER ANY SEQUENCE systemprivilege.

改动自己模式序列须要alter object权限。改动其它模式序列须要alter any sequence权限。

语法:

 

语义:

1)假设想以不同的数字又一次開始序列,必须删除重建。

SQL> alter sequence seq_t start with 2;

alter sequence seq_t start with 2

*

ERROR at line 1:

ORA-02283: cannot alter starting sequencenumber

2)改动的maxvalue必须大于序列当前值。

SQL> alter sequence seq_t maxvalue 1;

alter sequence seq_t maxvalue 1

*

ERROR at line 1:

ORA-04004: MINVALUE must be less than MAXVALUE

样例:

ALTER SEQUENCE customers_seq 
   MAXVALUE 1500;

 

ALTER SEQUENCE customers_seq 
   CYCLE
   CACHE 5; 

 

4.   DROP SEQUENCE(删除序列)

前提:

Thesequence must be in your own schema or you must have the DROP ANY SEQUENCE system privilege.

删除序列必需要有drop  any  sequence权限

 

语法:

 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5kZXhNYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

样例:

DROP SEQUENCE oe.customers_seq; 

 

5.    NEXTVAL and CURRVAL的使用限制

CURRVAL and NEXTVAL can
be used in the following places:

·        VALUES clause of INSERT statements

·        The SELECT list of a SELECT statement

·        The SET clause of an UPDATE statement

CURRVAL and NEXTVAL cannot
be used in these places: 不能用于下面场景

·        A subquery 子查询

·        A view query or materialized view query 视图或物化视图查询

·        A SELECT statement with the DISTINCT operator 含distinctkeyword查询

·        A SELECT statement with a GROUP BY or ORDER BY clause带order
by 查询语句

·        A SELECT statement that is combined with
another SELECT statement with the UNION, INTERSECT,
or MINUS set operator含union, interest,minus操作符

·        The WHERE clause of a SELECT statement用在where条件中

·        DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement 列的默认值

·        The condition of a CHECK constraint   check约束

 

 

 

 

 

 

 

 

 --------------------------------------

Dylan    Presents.

ORACLE SEQUENCE 具体解释的更多相关文章

  1. Oracle SEQUENCE 具体说明

     ORACLE  SEQUENCE     ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,能够用sequence序列实现. CREATE SEQUENCE语句及參数介绍: 创建序 ...

  2. oracle SEQUENCE 创建, 修改,删除

    oracle创建序列化: CREATE SEQUENCE seq_itv_collection            INCREMENT BY 1  -- 每次加几个              STA ...

  3. 【转】Oracle执行计划解释

    Oracle执行计划解释 一.相关的概念     Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物 ...

  4. Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    引用自 :http://www.2cto.com/database/201307/224836.html   Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 先假设有这么一个表 ...

  5. Oracle Sequence创建与使用

    一.Sequence简介 Sequence是数据库系统按照一定的规则自动增加的数字序列,主要用于生成数据库数据记录.这个序列一般作为代理主键(因为不会重复). Sequence是数据中一个特殊存放等差 ...

  6. Oracle Sequence Cache 参数说明

    转自 http://blog.csdn.net/tianlesoftware/article/details/5995051 之前整理的一篇文章: ORACLE SEQUENCE 介绍 http:// ...

  7. 基于Oracle Sequence的流水号生成规则

    流水号在各种系统中随处可见,一般都是使用自增.年月日时分秒+自增.UUID等,要么纯数字,要么纯字母,这种流水号缺乏一定的辨识度. 下面为大家介绍一种具有辨识度的流水号的生成方式:领域或者应用的标识 ...

  8. ORACLE Sequence 自增长

    Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequence是数据库系统的特性,有的数据库有Sequence,有的没有.比 ...

  9. ORACLE SEQUENCE用法(转)

    ORACLE SEQUENCE用法 在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系. 1.Create Sequence     首先要有CREATE ...

随机推荐

  1. 图像矫正-基于opencv实现

    一.引言 上篇文章中四种方法对图像进行倾角矫正都非常有效.Hough变换和Radon相似,其抗干扰能力比较强,但是运算量大,程序执行慢,其改进方法为:我们可以不对整幅图像进行操作,可以在图像中选取一块 ...

  2. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  3. 【Kibana】Kibana入门教程

    一.Kibana简介及下载安装 Kibana是专门用来为ElasticSearch设计开发的,可以提供数据查询,数据可视化等功能. 下载地址为:https://www.elastic.co/downl ...

  4. 绝版Node--Sequlize搭建服务(Node全栈之路 二)

    在Node全栈之路(一),也就是上篇文章中,我们讲到了sequlize的基本增删该查,这篇文章,我们在上篇文章的基础上继续探讨,讲一下关于sequlize创建的表之间的对应关系 参考资料:https: ...

  5. 耐克的定制页用canvas如何实现....跪求前端大神指点。

    选择鞋子的鞋底 鞋底会变色,也可以添加自己定制的id,这个东西看的是用canvas做的,但是小弟确实不知道怎么去做,求大神指点一二,不胜感激! nike的定制页地址:http://store.nike ...

  6. MSSQL段落还原脚本

    --段落还原:数据库损坏范围比较大,跨多个数据文件甚至跨文件组的时候,我们不得不恢复整个数据库.--这时如果数据库特别大,数据库恢复时间将会很长.但我们可以使用SQL Server提供的段落还原,来逐 ...

  7. mysql主从不同步问题 Error_code: 1236

    第一种情况,开启GTID,从库与主库不同步. 1.在从库上查看从的状态   mysql> show slave status \G *************************** 1. ...

  8. Relinking Oracle Home FAQ ( Frequently Asked Questions) (Doc ID 1467060.1)

    In this Document   Purpose   Questions and Answers   1)  What is relinking ?   2)  What is relinking ...

  9. [Spark Core] Spark 使用第三方 Jar 包的方式

    0. 说明 Spark 下运行job,使用第三方 Jar 包的 3 种方式. 1. 方式一 将第三方 Jar 包分发到所有的 spark/jars 目录下 2. 方式二 将第三方 Jar 打散,和我们 ...

  10. [Hive_1] Hive 基本概念

    Hive 系列01 Hive 简介 & Hive 应用场景 & Hive 与 Hadoop 的关系 & Hive 与传统数据库对比 1. Hive 简介 [ 官方介绍 ] Ap ...