码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE学习06-序列

时间:2016-04-22 01:06:46      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

一、序列的简介 

序列是一数据库对象,利用它可生成唯一的整数。
一般使用序列自动地生成主码值。一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈。
Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。 当一个序列号生成时,序列是递增,独立于事务的提交或回滚。
 
二、创建序列

drop table student cascade constraints;
create table student(
sid int not null primary key,
sno number(12),
sname varchar2(32),
address varchar2(64),
birthday date
);
 
 
格式:
create sequence stu_seq --序列名
increment by 1 -- 每次加几个
start with 1 -- 从1开始计数,初始值
nomaxvalue/maxvalue n/minvalue n -- 不设置最大值/最大/最小
nocycle/cycle -- 一直累加,不循环/循环
cache 10/nocache; --缓存几个值,默认20
 
例子:
create sequence stu_seq
increment by 1
start with 1
minvalue 1
maxvalue 999999999
nocycle
cache 10
 
 
三、查询序列

nextval: 返回序列中下一个有效的值,任何用户都可以引用
currval: 中存放序列的当前值
 
例子:
select
stu_seq.nextval "nextval",
stu_seq.currval "currval"
from dual;

 
 
insert into student
(sid,sno,sname,address)
values
(stu_seq.nextval,1001,张三,北京海淀)
 
 
四、修改序列

alter sequence 序列名
[increment by n]
[{maxvalue/ minvalue n|nomaxvalue}]
[{cycle|nocycle}]
[{cache n|nocache}];
不能修改序列的初始值
 
五、删除序列

drop sequence 序列名;

 

ORACLE学习06-序列

标签:

原文地址:http://www.cnblogs.com/sunnybug/p/5419571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!