博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle数据库之序列
阅读量:4969 次
发布时间:2019-06-12

本文共 1666 字,大约阅读时间需要 5 分钟。

Oracle数据库之序列(sequence)

序列是一个计数器,它并不会与特定的表关联。我们可以通过创建Oracle序列和触发器实现表的主键自增。序列的用途一般用来填充主键和计数。

一、创建序列

语法结构:

CREATE SEQUENCE [ schema. ] sequence_name  [ { INCREMENT BY | START WITH } integer  | { MAXVALUE integer | NOMAXVALUE }  | { MINVALUE integer | NOMINVALUE }  | { CYCLE | NOCYCLE }  | { CACHE integer | NOCACHE }  | ...  ]...;

完整语法结构见:

说明:

  1. schema:模式,即用户名称
  2. sequence_name:序列名称
  3. INCREMENT BY:定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。
  4. START WITH:定义序列的初始值,默认为1。
  5. MAXVALUE:序列生成器能产生的最大值。NOMAXVALUE是默认选项,代表没有最大值定义。
  6. MINVALUE:序列生成器能产生的最小值。NOMINVALUE是默认选项,代表没有最小值定义。
  7. CYCLE和NOCYCLE:当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值,最小值为1。对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。
  8. CACHE:定义存放序列的内存块的大小,默认为20,相当于预加载。缓冲部分序列计数以便更快获取序列值,可以改善序列的性能,但缓存选项可能会造成数据丢失。NOCACHE表示不缓冲。

示例:

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

二、删除序列

语法:

DROP SEQUENCE [ schema. ] sequence_name ;

示例:

DROP SEQUENCE customers_seq;

三、使用序列

序列有两个属性能够获取序列的值:

CURRVAL:返回序列的当前值。

NEXTVAL:返回序列下一个值。

示例:.

INSERT INTO customers(id) VALUES (customers_seq.NEXTVAL);SELECT customers_seq.CURRVAL FROM dual;

四、修改序列

语法:

ALTER SEQUENCE [ schema. ] sequence_name  { INCREMENT BY integer  | { MAXVALUE integer | NOMAXVALUE }  | { MINVALUE integer | NOMINVALUE }  | { CYCLE | NOCYCLE }  | { CACHE integer | NOCACHE }  | ...  } ...;

完整语法结构见:

注意,不能修改序列的初始值,否则会报ORA-02283。如果需要修改初始值,先删除序列再重新创建序列设定初始值。

示例:

ALTER SEQUENCE customers_seq     MAXVALUE 1500;
ALTER SEQUENCE customers_seq     CYCLE    CACHE 5;

五、序列查看

SELECT * FROM USER_SEQUENCES;

SELECT * FROM ALL_SEQUENCES;

SELECT * FROM DBA_SEQUENCES;

 

转载于:https://www.cnblogs.com/zf29506564/p/5759990.html

你可能感兴趣的文章
301页面转向 php
查看>>
生成器和迭代器的区别
查看>>
gp 服务的发布与javascript调用
查看>>
CF336B[思维题]
查看>>
php文本操作方法集合比较第2页
查看>>
kafka安装教程
查看>>
PE文件结构解析
查看>>
ubuntu下安装fcitx小企鹅输入法
查看>>
function(window, undefined)的意义
查看>>
mysql内外连主外键
查看>>
listSelectObjects
查看>>
poj_3275 Ranking the cows
查看>>
各种 Spring-Boot-Starters系列 介绍
查看>>
declare-styleable的使用
查看>>
互联网推送服务原理:长连接+心跳机制(MQTT协议)
查看>>
Linux Shell——bash shell 脚本简介
查看>>
洛谷 P1226 取余运算||快速幂
查看>>
jquery 选择器
查看>>
数据治理(Data Governance)
查看>>
构建之法阅读笔记03
查看>>