oracle序列(sequence)

1391阅读 0评论2011-11-20 张爱勋
分类:Oracle

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;
    
上一篇:20111年11月19日
下一篇:oracle 同义词(synonym)