oracle sequence用法_oracle session

oracle sequence用法_oracle session1.   AboutSequences(关于序列)序列是数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。序列消除了串行化并且提高了应用程序一致性。(想象一下没有序列的日子怎么办?)2.   CreatingSequences(创建序列)前提:PrerequisitesTocreateasequ

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

oracle sequence用法_oracle session

如果不加条件语句,默认创建的序列格式如下:

— 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权限。

 

语法:

 oracle sequence用法_oracle session

语义:

 

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权限

 

语法:

 oracle sequence用法_oracle session

例子:

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 视图或物化视图查询

·        SELECT statement with the DISTINCT operator distinct关键字查询

·        SELECT statement with a GROUP BY or ORDER BY clauseorder by 查询语句

·        SELECT statement that is combined with another SELECT statement with the UNION, INTERSECT, or MINUS set operatorunion, 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.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180216.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Telerik RadControls 2011 Q2 dev(开发版,无需序列号,包含源码)全系列下载「建议收藏」

    Telerik RadControls 2011 Q2 dev(开发版,无需序列号,包含源码)全系列下载「建议收藏」这个就不多说了,用.net的朋友都晓得….TelerikRadControls2011Q2dev(开发版,无需序列号,包含源码)RadControls_for_Silverlight4_2011_2_0712_Dev.msihttp://yunfil

  • 关于高德地图标注的那些坑

    关于高德地图标注的那些坑关于高德地图标注的那些坑。先说一下自己遇到的问题:在地图加载完成后自动弹出自定义的标注点和气泡框,然后当点击气泡框的时候,可以直接响应气泡框上的Button事件。

  • C语言代码的换行_c语言怎么换行输出

    C语言代码的换行_c语言怎么换行输出分两种情况:1.预处理:把一个预处理指示写成多行要用“\”续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成。2. 正常程序:一行写不下:把C代码写成多行则不必使用续行符,因为

  • 软件测试流程设计—黑盒测试用例设计方法「建议收藏」

    软件测试流程设计—黑盒测试用例设计方法「建议收藏」第1章测试用例设计方法测试用例设计方法包括黑盒测试用例设计方法和白盒测试用例设计方法,下面分别进行介绍。1.1黑盒测试用例设计方法黑盒测试用例设计方法包括等价类划分法、边界值分析法、判定表法、因果图法、正交试验法、状态迁移图法、流程分析法、输入域测试法、输出域分析法、异常分析法和错误猜测法等,下面进行详细介绍。1.1.1 等价类划分法1.什么是等价类划分法等价类划分法是一种典型的黑盒测试设计方法。该方法主要针对测试子项进行规格分析,然后获得用例,而不用对系统内部处理进行深..

  • Netty权威指南_netty官方中文文档

    Netty权威指南_netty官方中文文档如果链接不好使了,可以留言我在重新发一个链接:https://pan.baidu.com/s/1FJd2KWqzEQVVQ7jgeWViDg提取码:vgie

  • 虚拟机VMware下载与安装教程(详细)

    虚拟机VMware下载与安装教程(详细)文章目录虚拟机VMware的下载虚拟机VMware的安装虚拟机VMware的下载虚拟机VMware的安装1.虚拟机VMware的下载官网地址:https://www.vmware.com/cn.html以下为官网界面选择“产品”—>“个人桌面”—>“WorkstationPro”选择“下载”(这里虽然是“试用Workstation15.5Pro”,但是点击“下载”之后,将会跳转到“Workstation16Pro”的下载界面)根据自己电脑的系统,比如你的电脑是Wi

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号