版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。1、Create Sequence你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,CREATE SEQUENCE emp_sequenceINCREMENT BY 1 - 每次加几个START WITH 1 - 从1开始计数NOMAXVALUE - 不设置最大值NOCYCLE - 一直累加,不循环CACHE 10;一旦定义了emp_sequence,你就可以用CURRVAL,NEXTV ALCURRVAL=返回sequence的当前值NEXTV A
2、L=增加sequence的值,然后返回sequence 值比如:emp_sequence.CURRVALemp_sequence.NEXTV AL可以使用sequence的地方:- 不包含子查询、snapshot、VIEW的SELECT 语句- INSERT语句的子查询中- NSERT语句的VALUES中- UPDATE 的SET中可以看如下例子:INSERT INTO emp VALUES(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDA TE, 1200, NULL, 20;SELECT empseq.currval
3、FROM DUAL;但是要注意的是:- 第一次NEXTV AL返回的是初始值;随后的NEXTV AL会自动增加你定义的INCREMENT BY 值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTV AL 初始化之后才能使用CURRVAL,否则会出错。一次NEXTV AL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTV AL,其值就是不一样的。明白?- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。使用cache或
4、许会跳号,比如数据库突然不正常down掉(shutdown abort,cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。2、Alter Sequence你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须drop sequence 再re-create .Alter sequence 的例子ALTER SEQUENCE emp_sequenceINCREMENT BY 10
5、MAXVALUE 10000CYCLE - 到10000后从头开始NOCACHE ;影响Sequence的初始化参数:SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。可以很简单的Drop SequenceDROP SEQUENCE order_seq;好吧,就到这里。-自增长及触发器:如何在Oracle 中实现类似自动增加ID 的功能?整理编辑:China ASP我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的功能,我们可以通过采取以下的功能实现自动增加ID的功能1.首先创建sequencecre
6、ate sequence seqmax increment by 12.使用方法select seqmax.nextval ID from dual就得到了一个ID如果把这个语句放在触发器中,就可以实现和ms sql 的自动增加ID相同的功能!-由macro 发布于: 2001-04-13 14:44作者:Macro Zeng# 建表#CREATE TABLE "SPORTS"."LINEUP"("ID" NUMBER NOT NULL, "TYPE" NUMBER(3 NOT NULL, "BODY&q
7、uot; VARCHAR2(100 NOT NULL, "HITS" NUMBER( 10 DEFAULT 0 NOT NULL, PRIMARY KEY("ID"TABLESPACE "TS_SPORTS"# 建序列#CREATE SEQUENCE "SPORTS"."SPORTS_LINEUP_ID_SEQ" INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINV ALUE 1 NOCYCLECACHE 50 NOORDER# 建自动更新的触发器#C
8、REATE OR REPLACE TRIGGER "SPORTS"."SPORTS_LINEUP_ID_TRIGGER" BEFORE INSERTON "SPORTS"."LINEUP"FOR EACH ROWDECLAREnext_id NUMBER;BEGIN-Get the next id number from the sequenceSELECT sports_lineup_id_seq.NEXTV ALINTO next_idFROM dual;-Use the sequence number as the primary key-for the record being inserted.:new.id := next_id;END;# 建保护PRIMARY KEY 的触发器#CREATE OR REPLACE TRIGGER "SPORTS"."LINEUP_ID_UPDATE_TRIGGER" BEFORE UPDATE OF "ID" ON "SPORTS"."LINEUP"FOR EACH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度高端医疗设备采购及售后服务合同范本9篇
- 西北大学现代学院《计算机建模与渲染》2023-2024学年第一学期期末试卷
- 西安邮电大学《统计学习概论》2023-2024学年第一学期期末试卷
- 西北民族大学《大型数据库系统》2023-2024学年第一学期期末试卷
- 2024年二手房买卖暂不办理产权过户合同12篇
- 2024只离婚不离家共同子女抚养协议书:离婚不离家的责任共担3篇
- 2024年度医药产品安全配送委托合同3篇
- 放疗中心施工方案模板
- 建筑用木料及加工木材组件相关项目投资计划书
- 地面气象单要素观测仪相关项目投资计划书范本
- 长方体和正方体的实践运用
- 2023译林版新教材高中英语必修二全册重点短语归纳小结
- 部编人教版语文六年级下册《9 浣溪沙》课件
- 扁平化春暖花开教育环保春天主题模板课件
- 吊车安全技术交底
- 《让学生看见你爱》心得体会
- GB∕T 9286-2021 色漆和清漆 划格试验
- 环境监测所需各类原始记录填写格式模板参考模板范本
- 01土地复垦适宜性评价案例
- 天津城建桩基础课程设计
- 备件的ABC分类管理规定法
评论
0/150
提交评论