Oracle Sequence创建与使用
最近几天使用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创建与使用相关推荐
- oracle SEQUENCE 创建, 修改,删除
oracle创建序列化: CREATE SEQUENCE seq_itv_collection INCREMENT BY 1 -- 每次加几个 S ...
- ORACLE sequence各参数及创建修改删除使用详解示例
ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,可以用sequence序列实现. CREATE SEQUENCE语句及参数介绍: 详见官方文档:http://docs.oracle ...
- oracle 序列 清除,Oracle序列(Sequence)创建、使用、修改、删除
Oracle序列(Sequence)创建.使用.修改.删除 一: 创建序列: 语法: CREATE SEQUENCE sequence_name [START WITH num] [INCREMENT ...
- oracle中创建触发器
从csdn上面看到一个如何创建触发器的问题,感觉自己很有必要保存学习,特写下来: 条件: 现有A.B两张表 A: 工号 姓名 密码 性别 年龄 ... B: 工号 姓名 密码 当对A表中的" ...
- sequence oracle mysql,oracle sequence转mysql(mysql实现oracle的sequence功能)
最近项目上在做数据转移工作,需要把oracle转为mysql,在转换oracle储存过程中遇见这样一句sql,查的是序列号的下一个值 由于mysq只有递增列的概念没有oracle的sequence功能 ...
- 【转】oracle sequence
原文链接 http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html ORACLE SEQUENCE用法 在oracle中sequen ...
- Oracle Sequence
Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequence是数据库系统的特性,有的数据库有Sequence,有的没有.比 ...
- oracle sequence 应用,oracle应用之使用sequence批量写数据
本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓: 学如逆水行舟,不进则退 先介绍oracle sequence的一 ...
- oracle sequence sql server,SQL Server 实现oracle的sequence方法示例
这篇文章主要为大家详细介绍了SQL Server 实现oracle的sequence方法示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 当然 ...
最新文章
- 华南理工网络计算机基础知识,2019年华南理工大学网络教育计算机基础随堂练习第一章...
- 7个让你惊叹的HTML技巧
- ACM/OI卡常技巧总结(clock大法好)
- 如何给屏幕设置一个充满全屏的图片
- 索尼游戏手柄SP2的开发体会
- python生成静态html_Python写静态HTML
- error LNK2019: unresolved external symbol __imp__ func@20 referenced in function..
- 1.4编程基础之逻辑表达式与条件分支 01判断数正负
- Redis实现计数器---接口防刷
- video-react报错pause没有被定义_qt常见报错
- Asp.net 简单的站内搜索引擎
- Golang环境及revel框架在Linux下的安装
- [Maven实战-许晓斌]-[第二章]-2.4设置HTTP代理
- ECMAScript和JavaScript的关系
- 用html计算长方形的面积公式,长方形的面积公式
- 矩阵满秩分解原理解释
- 基于微信小程序的健康管理系统-计算机毕业设计
- drools的简单入门案例
- 如何禁止计算机被网络访问,局域网内如何禁止别人访问自己的电脑
- unity做一个小游戏(适合零基础或者巩固加深unity中的工具类的用法)