zoukankan      html  css  js  c++  java
  • oracle学习篇十:序列

    序列:是用来生成唯一、连续的整数的数据库对象。序列通常用来自动生成主键或唯一键的值。

    1. 创建序列语法如下:
    Create SEQUENCE sequence_name
    [START WITH integer]
    [INCREMENT BY integer]
    [MAXVALUE integer|NOMAXVALUE]
    [MINVALUE integer|NOMINVALUE]
    [CYCLE|NOCYCLE]
    [CACHE interger|NOCACHE];

    其中:START WITH: 是指定要生成的第一个序列号。对于升序序列,其默认值为序列的最小值。对于降序序列,其默认值为序列的最大值。
    INCREMENT BY:是用于指定序列号之间的间隔。其默认值为1。如果integer为正值,则生成的序列将按升序排列,否则按降序排列。
    MAXVALUE: 指定序列可以生成的最大值。
    NOMAXVALUE: 这是默认选项,将升序序列的最大值设为10的27次幂,将降序序列的最大值设为-1。
    MINVALUE: 指定序列的最小值。MINVALUE必须小于或等于START WITH的值,并且必须小于MAXVALUE。
    NOMINVALUE: 这是默认选项,将升序序列的最小值设为1,将降序序列的最小值设为-10的26次幂。
    CYCLE: 指定序列在达到最大值或最小值后,将继续从头开始生成值。
    NOCYCLE: 这是默认选项。指定序列在达到最大值或最小值后,将不能再继续生成值。
    CACHE: 使用CACHE选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快的访问序列号。
    NOCACHE: 此项则不会为加快速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Oracle将默认缓存20个序列号。

    示例3:Create SEQUENCE toys_seq
    START WITH 10
    INCREMENT BY 2
    MAXVALUE 2000
    MINVALUE 10
    NOCYCLE
    CACHE 30;

    2. 访问序列:可以通过CURRVAL和NEXTVAL伪列来访问该序列的值。
    示例4:演示从序列toys_seq中选择值插入toys表中的toyid列。执行成功将会在该表的toyid列插入值"P10"和"P12"。
    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'TWENTY',25);
    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'MAGIC PENCIL',75);

    示例5:演示如何查看序列当前值
    Select toys_seq.CURRVAL from dual;

    3. 更改序列:ALTER SEQUENCE命令用于设置或删除MINVALUE或MAXVALUE、修改增量值、修改缓存中的序列号的数目。
    修改序列语法如下:注意,不能修改序列的START WITH参数。在修改序列时,应注意升序序列的最小值应小于最大值。
    ALTER SEQUENCE [schema.]sequence_name
    [INCREMENT BY integer]
    [MAXVALUE integer|NOMAXVALUE]
    [MINVALUE integer|NOMINVALUE]
    [CYCLE|NOCYCLE]
    [CACHE interger|NOCACHE];

    示例6:演示如何设置一个新的MAXVALUE,并为toys_seq序列打开了CYCLE。
    ALTER SEQUENCE toys_seq
    MAXVALUE 5000
    CYCLE;

    可以查询字典视图User_Sequences来查看用户所创建的序列的详细信息

    4.删除序列语法:Drop SEQUENCE toys_seq;

  • 相关阅读:
    包装类
    项目基础架构搭建
    开发环境的搭建和Shell编程
    Linux系统概述和编程基础
    java.lang.ExceptionInInitializerError
    mybatis中文文档
    如何造轮子
    Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099
    JDK 1.7与JDK 1.8版本的完美切换
    JDBC连接步骤
  • 原文地址:https://www.cnblogs.com/brant/p/5637871.html
Copyright © 2011-2022 走看看