(二)Oracle学习笔记—— 序列
1. 序列简介
序列作为数据库里的对象,可以将序列值装入内存以提高访问效率,主要作用是生成唯一的主键值。其作用相当于一个计数器,它并不会与特定的表关联。通过创建Oracle序列和触发器实现表的主键自增。
2. 创建序列
create sequence seqA1
increment by 1
start with 1
maxvalue 5
minvalue 1
cycle
nocache;
创建完成后在Sequences里可观察到已添加序列:
查看序列:
//先nextval 后 currval
select seqEmp.nextval from dual;
select seqEmp.currval from dual;
若用图形化创建则如下所示,可以看到序列的各个属性:
创建语句解释:
CREATE SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中 NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
3. 使用序列
序列在下列情况下会出现裂缝:
- 回滚
- 系统异常
- 多个表同时使用同一序列
4. 修改序列
//修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存
alter SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中
修改序列的注意事项:
- 必须是序列的拥有者或对序列有 ALTER 权限
- 只有将来的序列值会被改变
- 改变序列的初始值只能通过删除序列之后重建序列的方法实现(不能修改序列的初始值,否则会报ORA-02283)
5. 删除序列
使用DROP SEQUENCE 语句删除序列
删除之后,序列不能再次被引用
6. 使用sequence注意事项
- currval总是返回当前sequence的值,只有在第一次nextval初始化后,才能使用currval,否则会出错。每使用一次nextval,就会增加一次sequence的值,同一个语句里面要是有多个nextval,其数值就是不一样的
- 第一次nextval返回的值是初始值:随后的nextval会自动增加定义的increment by值,然后返回增加后的值
- 如果指定cache值,oracle就可以预先在内存里面放置一些sequence,这样存取会更快,cache里面取完后,oracle自动再取一组到cache,使用cache或许会跳号,比如数据库突然不正常down掉,cache中的sequence就会丢失,可以在定义sequence的时候,使用nocache防止这种情况
(二)Oracle学习笔记—— 序列的更多相关文章
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
- 毕业设计 之 二 PHP学习笔记(一)
毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
- 《Linux内核设计与实现》第一、二章学习笔记
<Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡 学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...
- Oracle学习笔记——点滴汇总
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
随机推荐
- Android 网络url设置View背景图
imgstr为url网络图片地址,topllay是要设置背景的控件: 方法1.Android Glide设置View背景图 Glide.with(this).load(imgStr).asBitmap ...
- AC日记——魔方 洛谷 P2007
魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include & ...
- AC日记——Is it rated? codeforces 807a
Is it rated? 思路: 水题: 代码: #include <cstdio> #include <cstring> using namespace std; ],b[] ...
- ubantu的python2与python3的相关兼容更新问题
Ubuntu14.04, 系统内同时装了Python3.3 和 2.7用sudo apt-get install python-pipsudo apt-get install python3-pip分 ...
- 1957 Problem F 乌鸦坐飞机
#include <iostream> #include <algorithm> #include <cmath> #include <vector> ...
- fastxml Jackson annotation使用小记
dependencies: compile("com.fasterxml.jackson.core:jackson-annotations") compile("com. ...
- Codeforces Round 253 (Div. 2)
layout: post title: Codeforces Round 253 (Div. 2) author: "luowentaoaa" catalog: true tags ...
- 【高斯消元】【异或方程组】poj1222 EXTENDED LIGHTS OUT
由于每个点的状态受到其自身和周围四个点的影响,所以可以这样建立异或方程组: 引用题解: http://hi.baidu.com/ofeitian/item/9899edce6dc6d3d2974452 ...
- 【块状树】【LCA】bzoj1787 [Ahoi2008]Meet 紧急集合
分块LCA什么的,意外地快呢…… 就是对询问的3个点两两求LCA,若其中两组LCA相等,则答案为第三者. 然后用深度减一减什么的就求出距离了. #include<cstdio> #incl ...
- BUG The user specified as a definer ('root'@'%') does not exist' in
BUG描述:通过点击实现页面无刷新提交数据. 链接服务器数据库时-提交成功 当把数据库下载到本地后链接,提交失败 查看日志显示:The user specified as a definer ('ro ...