Oracle序列sequence

 

1、 序列

/*序列(sequence)是一种数据库项,它生成一个整数序列.序列所生成的整数通常可以用来填充数字类型的主键值。*/

--创建序列

/*CREATE SEQUENCE sequence_name

           [START WITH start_num]

           [INCREMENT BY increment_num]

           [ { MAXVALUE maximum_num | NOMAXVALUE } ]

           [ { MINVALUE mininum_num | NOMINVALUE } ]

           [ { CYCLE | NOCYCLE }]

           [ { CACHE cache_num | NOCACHE}]

           [ { ORDER | NOORDER }]

 */

 --省略可选参数,意味着起始数字和增量都被设置为默认值。

 CREATE SEQUENCE test_seq;

 --指定了可选参数

 CREATE SEQUENCE test_seq1

        START WITH 10

        INCREMENT BY 5

        MINVALUE 10

        MAXVALUE 20

        CYCLE

        CACHE 2

        ORDER;

--获取有关序列信息

select * from user_sequences where sequence_name='test_seq1'

--使用序列

/*序列生成一系列数字。一个序列中包含两个"伪列",分别是currval和nextval,可以分别用来获取该序列的当前值和下一个值;

        在检索序列的当前值之前,必须通过检索序列的下一个值对序列进行初始化。*/

        select test_seq1.nextval from dual;

        select test_seq1.currval from dual;

       

--使用序列填充主键

create table t_order_status2(

            id INTEGER constraint fk_order_status2_id primary key,

            status varchar2(10),

            last_modified date default sysdate

);

--创建序列

/*在使用序列填充主键时,通常应该使用nocache选项,这样可以避免序列产生不连续的情况。序列不连接的情况这所以会发生,是因为在关闭数据库时,所

        缓存的值全部丢失了.

        */

create sequence order_status2_seq nocache;

      

insert into t_order_status2 (id,status,last_modified) values(order_status2_seq,'PLACED',sysdate);

      

--修改序列

alter sequence order_status2_seq

increment by 2;

--删除序列

drop sequence order_status2_seq;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值