一.Sequence简介

  Sequence是数据库系统按照一定的规则自动增加的数字序列,主要用于生成数据库数据记录。这个序列一般作为代理主键(因为不会重复)。

Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库则没有Sequence。

  此处,主要讨论下oracle sequence的创建与使用,其他的大同小异。

二.Sequence创建

  Create Sequence之前要获取CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

1 -- Create sequence
2 create sequence SEQ_PRODUCT_STANDARD_CHG  --Sequence实例名
3 minvalue 1                                --最小值,可以设置为0
4 maxvalue 2147483647                       --最大值
5 start with 1                              --从1开始计数
6 increment by 1                            --每次加几个
7 cache 20;                                 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

  或者可以如下创建均是可以的

1 CREATE SEQUENCE SEQ_PRODUCT_STANDARD_CHG
2 START WITH 1                          -- 从1开始计数
3 NOMAXvalue                            -- 不设置最大值
4 INCREMENT BY 1                        -- 每次加几个
5 NOCYCLE                               -- 一直累加,不循环
6 CACHE 10;                             --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

三. Sequence使用

  创建好Sequence后就可以通过currVal与nextVal进行使用。

    currVal:返回 sequence的当前值

    nextVal:  增加sequence的值,然后返回 增加后sequence值

如得到上边创建Sequence值的语句为(其中kingstar为用户,该用户下其实可以省略):

1 select kingstar.SEQ_PRODUCT_STANDARD_CHG.currVal 2 from dual

  在Sql语句中可以使用sequence的地方:

  1. 不包含子查询、snapshot、VIEW的 SELECT 语句
  2. INSERT语句的子查询中        
  3. INSERT语句的values中              
  4. UPDATE 的 SET中

  注:1.CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。

2. 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

四.Sequence 修改

  拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create。

   1 alter sequence kingstar.SEQ_PRODUCT_STANDARD_CHG  maxvalue 9999999;   

1 ALTER SEQUENCE kingstar.SEQ_PRODUCT_STANDARD_CHG
2 INCREMENT BY 10
3 MAXVALUE 10000
4 CYCLE — 到10000后从头开始
5 NOCACHE ;

五. Sequence删除

   1 DROP SEQUENCE kingstar.SEQ_PRODUCT_STANDARD_CHG;

  

转载于:https://www.cnblogs.com/ZiyuanZhu/p/5976580.html

Oracle Sequence创建与使用相关推荐

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

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

  2. Oracle Sequence创建与使用

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

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

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

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

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

  5. oracle中创建触发器

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

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

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

  7. 【转】oracle sequence

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

  8. Oracle Sequence

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

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

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

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

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

最新文章

  1. 全球与中国固态电池市场深度研究及投资可行性评估报告2022-2028年
  2. java 监听 变量_[Java学习小记]使用PropertyChangeSupport来监听变量的变化
  3. 使用 ServiceStack 构建跨平台 Web 服务
  4. 现在电脑的主流配置_主流级玩家 应该如何配置高性价比电脑
  5. Swing表格JTable通过JTableModel插入行
  6. AS中突然找不到svn选项了。
  7. vue如何获取tree当前选中的节点_vue Treeselect树形下拉框之获取选中节点的ids和lables操作...
  8. SWMM模型代码LID(Low Impact Development)模块分析
  9. ilo远程给服务器装系统,惠普hp服务器通过iLO接口远程安装操作系统
  10. 爬虫进阶之路---处理滑块验证码(以解决极验平台的滑动验证码为例[附带本项目源码!],通过率百分之九十以上!!!)
  11. ThingJS结合图表实现数据展示
  12. factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class ..
  13. 案例分析默写题1__立项管理_可行性研究的内容_可行性研究报告的内容
  14. 【CSS】CSS画矩形、圆、半圆、弧形、半圆、小三角、疑问框
  15. 禁用迅雷极速版自动升级为迅雷x
  16. 元宇宙”成时下热点 中国古人是如何认识“宇宙”的?
  17. 程序员学金融-日本(2)- 高负债风险
  18. 名正则言顺�谈服装品牌名称(二)
  19. bit byte K M G
  20. c语言curses小游戏,基于curses库实现弹球游戏

热门文章

  1. 帧中继环境下Ping的实现
  2. IE浏览器无法通过ftp:\\192.168.xxx.xxx连接ftp服务器
  3. Java中String.format()的简单用法介绍
  4. uni-app之实现分页
  5. oracle数据表通过使用SYS_GUID()自动生成唯一主键
  6. 简单整理 - 常用设计模式
  7. Java面试题超详细讲解系列之六【网络协议篇】
  8. v8go 库手动编译 v8 golang 库手动编译
  9. C++ 多态与虚函数面试题
  10. ajax实现评论区功能,Ajax实现评论中顶和踩功能的实例代码