1. 序列是oracle提供的用于生成一系列唯一数字的数据库对象。序列不占用实际的存储空间,只是在数据字典中保存它的定义信息。
2. 创建序列:
权限:create sequence;create any sequence;
语句:create sequence seq_name
[start with n]
[increment by n] //默认是1
[minvalue n | nominvalue]
[maxvalue n | nomaxvalue]
[cache n | nvache] //是否产生序列号预分配,并存储在内存中;
[cycle | nocycle]
[order | noorder]; //保证生成的序列值是是按顺序产生的。
列子:
create sequence deptno_seq
maxvalue 99
start with 50
increment by 10
cache 10;
insert into scott.dept(deptno,dname,loc)
values(deptno_seq.nextval,'development',default);
注:序列的两个伪列:nextval,currval。
在为表生成主键值时,通常是为表创建一个行级触发器,然后在触发器中使用序列替换用户提供的值。
3. 修改序列
alter sequence deptno_seq
maxvalue 200
cache 3; //start with不能改,其他都可以
4. 查询用户的序列
desc user_sequences
select * from user_sequences where sequence_name='DEPTNO_SEQ';
5.删除序列
drop sequence deptno_seq;
阅读(1341) | 评论(0) | 转发(0) |