序列(sequence) 是Oracle提供的用于生成一系列唯一数字的数据库对象。它会自动生成顺序递增或者递减的序列号,以实现自动提供唯一的主键值。序列可以在多用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需要任何额外的I/O开销。

  序列创建的语法:

  create sequence <seq_name>

  [start with n]

  [increment by n]

  [minvalue n|nominvalue]

  [maxvalue n|nomaxvalue]

  [cache n|nocache]

  [cycle|nocycle]

  [order|noorder]

  

  seq_name: 序列名

  start: 指定序列开始位置 n

  increment by: 表示序列的增量,正数生成一个递增序列,负数生成一个递减序列,默认值为1.

  minvalue: 序列的最小值

  maxvalue: 序列的最大值

  cache: 决定是否是否产生序列号分配,并存储在内存中

  cycle: 当序列达到最大值或者最小值,可以复位并继续下去,如果达到极限则生成的下一个数为最小值或者最大值,如果为nocycle,达到最大值或者最小值,试图获取下一个值时报错

  order: 保证生成的序列是按顺序产生的

  实例:

create sequence seq_test_id
start with 10000
increment by 10
minvalue 1000
maxvalue 1000000
cache 50;

查看当前值与下一个值

select seq_test_id.currval, seq_test_id.nextval from dual;

使用序列 seq_test_id,注意只能用nextval,不能用currval,否则序列不会自增到下一个值

insert into t_test(id, name)
values (seq_test_id.nextval, 'latiny1');

insert into t_test(id, name)
values (seq_test_id.nextval, 'latiny2');

select *
from t_test;

修改序列

alter sequence seq_test_id
maxvalue 10000000
increment by 1000
cache 100;

insert into t_test(id, name)
values (seq_test_id.nextval, 'latiny3');

select *
from t_test;

删除序列

drop sequence seq_test_id;

查询当前用户的序列信息

select *
from user_sequences;

  

  

Oracle 序列(sequence)的更多相关文章

  1. Oracle序列(Sequence)创建、使用、修改、删除

    Oracle对象课程:序列(Sequence)创建.使用.修改.删除,序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成.创建序 ...

  2. oracle 序列sequence

    查询所有的序列: select 'create sequence '||sequence_name|| ' minvalue '||min_value|| ' maxvalue '||max_valu ...

  3. Oracle序列Sequence用法

    序列 序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成.创建序列的语法是:语法结构:创建序列 CREATE SEQUENCE ...

  4. oracle序列sequence

    序列 定义一个序列,自动产生连续的整数.也称序列生成器(sequence generator)产生序列号.在多用户环境下该序列生成器特别有用,可生成各返回序列号而不需要磁盘I/O或事务封锁.序列号为O ...

  5. oracle序列sequence操作汇总(命令)--待续

    1.创建sequence 2.删除sequence 3.查询有哪些sequence select * from user_objects where object_type='SEQUENCE'; 4 ...

  6. 创建Oracle序列sequence

    create sequence SEQ_ID minvalue 1 maxvalue 99999999 start with 1 increment by 1 nocache order; 建解发器代 ...

  7. Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence

    Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence 使用oracle11g插入数据时遇到这样一个问题: 1 --创建测试表-- 2 CREATE T ...

  8. oracle数据库--序列(sequence)

    一个问题: 在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长,怎么处理? 解决方式:oracle是利用"序列"(sequence)来完成的. ...

  9. Oracle数据库中序列(SEQUENCE)的用法详解

    Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...

随机推荐

  1. IT部门不应该是一个后勤部门

    管理上最大的问题在于不重视预算与核算的管理.从管理层到员工,很少有经营的念头,只是一味地埋头做事.西方企业总结了当今几百年的经营理念,最终把企业一切活动的评价都归结到唯一的.可度量的标准上:钱来度量. ...

  2. nginx作为负载均衡服务器,tomcat作为应用服务器

    1 如果想用一台主机,能够部署多个站点,并且访问每个站点都要求是在80端口,可以采用nginx+tomcat的方式 需要注意的是,tomcat一定不要监听80端口.   可以将静态资源配置在nginx ...

  3. php 依赖注入的实现

    当A类需要依赖于B类,也就是说需要在A类中实例化B类的对象来使用时候,如果B类中的功能发生改变,也会导致A类中使用B类的地方也要跟着修改,导致A类与B类高耦合.这个时候解决方式是,A类应该去依赖B类的 ...

  4. 英文字母对应的Unicode编码

    A~Z :65~90 a~z :97~122 0-9 : 48-57 如果想要知道字符串中的值是否是小写英文字符,不使用工具包的一种方法就是使用Unicode编码值,举例: package main ...

  5. randi( )函数--MATLAB

    randi()函数生成均匀分布的伪随机整数,范围为imin--imax,如果没指定imin,则默认为1. r = randi(imax,n):生成n*n的矩阵 r = randi(imax,m,n): ...

  6. 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册

    项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...

  7. Hibernate缓存策略(一级缓存和EHcache二级缓存)

    如何配置二级缓存: 第一步:导入EHcache依赖 1)Maven项目: <!--此处使用hibernate4--> <dependency> <groupId>o ...

  8. Mysql启动找不到mysql.sock文件问题(Centos7)

    刚装完Mysql5.7,将Mysql添加到开机自启.reboot之后mysql服务却没启动起来, 直接输入mysql –uroot –p ,出现如下错误,找不到mysql.sock文件.用servic ...

  9. 翻转一个数组(c++实现)

    反转一个数组: 其实STL中的vector有一个reverse函数便可以使用. #include<iostream> using namespace std; int* ReverseAr ...

  10. H5 67-清除浮动方式三

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...