最近几天使用Oracle的sequence序列号,发现对如何创建、修改、使用存在很多迷茫点,在上网寻找答案后,根据各路大神的总结,汇总下对自己的学习成果;

在Oracle中sequence就是序号,每次提取完都会自动增加,步幅固定,它与表没有直接关系!

创建sequence语句:

CREATE SEQUENCE seq_name-- seq_name为计数器的名字,自定;
INCREMENT BY 1 -- 每次加幅度:1,2,3,....;
START WITH 1 -- 起始序号,以实际生产情况而定;
NOMAXvalue -- 不设置最大值,或设定最大值: maxvalue 9999;
NOCYCLE -- 一直累加,不循环; 或循环使用 cycle ;
CACHE 10; --设置缓存序列个数,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

修改sequence:

Alter sequence 可以修改sequence(除起始值)步幅、最大/最小值、是否循环、缓存个数 这些参数;

例:Alter Sequence seq_name

Increment  By  2

Maxvalue 9999

Cycle

Cache 5;

需要修改sequence的起始值,则需要删除原有sequence,re-create重新创建;

应用sequence:

sequence创建完成后,就可以使用sequence的两个参数 currval、nextval;

currval查询sequence的当前值:select seq_name.currval from dual;

nextval查询sequence下一个值:select seq_name.nextval from dual;

例:对某一张表使用:insert into tb_name(id,name) values(seq_name.nextval,'下一个计数');

删除sequence :

drop sequence seq_name;

注:

1、currval是取当前值,所以一个新的计数器sequence必须先使用nextval后才可以使用currval否则会报错;

2、nextval是取下一个值,但第一次使用时取的是初始值,之后正常取下一个,且如果一个语句(不同的子句)里面有多个nextval,它们的取值可能是不同的;

3、如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,cache里面的取完后,oracle自动再取一组到cache。

优点:存取的快些,尤其是并发访问时。

缺点:使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在创建的时候用nocache防止这种情况。

Oracle Sequence创建与使用相关推荐

  1. oracle SEQUENCE 创建, 修改,删除

    oracle创建序列化: CREATE SEQUENCE seq_itv_collection             INCREMENT BY 1  -- 每次加几个               S ...

  2. ORACLE sequence各参数及创建修改删除使用详解示例

    ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,可以用sequence序列实现. CREATE SEQUENCE语句及参数介绍: 详见官方文档:http://docs.oracle ...

  3. oracle 序列 清除,Oracle序列(Sequence)创建、使用、修改、删除

    Oracle序列(Sequence)创建.使用.修改.删除 一: 创建序列: 语法: CREATE SEQUENCE sequence_name [START WITH num] [INCREMENT ...

  4. oracle中创建触发器

    从csdn上面看到一个如何创建触发器的问题,感觉自己很有必要保存学习,特写下来: 条件: 现有A.B两张表 A: 工号 姓名 密码 性别 年龄 ... B: 工号 姓名 密码 当对A表中的" ...

  5. sequence oracle mysql,oracle sequence转mysql(mysql实现oracle的sequence功能)

    最近项目上在做数据转移工作,需要把oracle转为mysql,在转换oracle储存过程中遇见这样一句sql,查的是序列号的下一个值 由于mysq只有递增列的概念没有oracle的sequence功能 ...

  6. 【转】oracle sequence

    原文链接  http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html ORACLE SEQUENCE用法 在oracle中sequen ...

  7. Oracle Sequence

    Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequence是数据库系统的特性,有的数据库有Sequence,有的没有.比 ...

  8. oracle sequence 应用,oracle应用之使用sequence批量写数据

    本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓: 学如逆水行舟,不进则退 先介绍oracle sequence的一 ...

  9. oracle sequence sql server,SQL Server 实现oracle的sequence方法示例

    这篇文章主要为大家详细介绍了SQL Server 实现oracle的sequence方法示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 当然 ...

最新文章

  1. 华南理工网络计算机基础知识,2019年华南理工大学网络教育计算机基础随堂练习第一章...
  2. 7个让你惊叹的HTML技巧
  3. ACM/OI卡常技巧总结(clock大法好)
  4. 如何给屏幕设置一个充满全屏的图片
  5. 索尼游戏手柄SP2的开发体会
  6. python生成静态html_Python写静态HTML
  7. error LNK2019: unresolved external symbol __imp__ func@20 referenced in function..
  8. 1.4编程基础之逻辑表达式与条件分支 01判断数正负
  9. Redis实现计数器---接口防刷
  10. video-react报错pause没有被定义_qt常见报错
  11. Asp.net 简单的站内搜索引擎
  12. Golang环境及revel框架在Linux下的安装
  13. [Maven实战-许晓斌]-[第二章]-2.4设置HTTP代理
  14. ECMAScript和JavaScript的关系
  15. 用html计算长方形的面积公式,长方形的面积公式
  16. 矩阵满秩分解原理解释
  17. 基于微信小程序的健康管理系统-计算机毕业设计
  18. drools的简单入门案例
  19. 如何禁止计算机被网络访问,局域网内如何禁止别人访问自己的电脑
  20. unity做一个小游戏(适合零基础或者巩固加深unity中的工具类的用法)

热门文章

  1. CSS通过blur实现高斯模糊
  2. 拜占庭将军问题(三)——书面协议
  3. Jasperreport_6.18的回血终结篇之案例目录、封面
  4. Windows7下安装Docker、下载镜像和运行OpenTsdb容器
  5. 如何让精灵在不同的帧率下运动速度不变--Frame Rate Independent Movement
  6. 服务器主板插显卡进不了系统,关于换了显卡后进不了系统的问题
  7. 微信公众号之微信支付
  8. 取得最高系统管理员权限的有效方法
  9. 小论文投稿经历与经验
  10. 水の三角(超级卡特兰数/大施罗德数)