• oracle的自增序列


    因为oracle中的自增序列与mysql数据库是不一样的,所以在这里唠嗑一下oracle的自增序列

    1. 创建和修改自增序列

    --创建序列的语法 --
     create sequence [user.]sequence_name
        [increment by n]
        [start with n]
        [maxvalue n | nomaxvalue]
        [minvalue n | nominvalue];
        
    --修改序列的语法--
    alter sequence [user.]sequence_name
        [increment by n]
        [maxvalue n | nomaxvalue]
        [minvalue n | nominvalue]

    序列参数说明
    INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
    START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
    MAXVALUE:指定序列可生成的最大值。
    NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。 MINVALUE:指定序列的最小值。 NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。

    2.序列的使用

    --创建示例表 --
    create table Student(
        stuId number(9) not null,
        stuName varchar2(20) not null,
        stuMsg varchar2(50) null
    )
      
      -- 创建序列  Student_stuId_Seq --
     create sequence Student_stuId_Seq
     increment by 1
     start with 1
     minvalue 1
     maxvalue 999999999;
     
     -- 更改序列  Student_stuId_Seq--
     alter sequence Student_stuId_Seq
        increment by 2  
        minvalue 1
        maxvalue 9999999;
     
     --获取序列自增ID --
     select Student_stuId_Seq.Nextval "自增序列 ID" from dual;
     
     -- 删除序列 -- 
     drop sequence Student_stuId_Seq;
     
     --调用序列,插入Student数据 --
     insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'张三');
     insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'李四');
     --查询插入的数据 --
     select * from Student

    3.序列的两个字段

    (1)nextval:当获取序列的nextval时,会获取到序列的当前值,并且进行一次自增。

    (2)currentval:当获取序列的currentval时,会获取到序列的当前值,不会进行自增。

  • 相关阅读:
    算法笔记--支配树
    51Nod 1187 寻找分数
    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer
    ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare
    HDU
    HDU
    Codeforces 1011E
    Codeforces 990D
    Codeforces 989C
    Codeforces 932E
  • 原文地址:https://www.cnblogs.com/ironHead-cjj/p/11298711.html
Copyright © 2020-2023  润新知