您的位置:首页 > 数据库 > Oracle

oracle之序列

2013-11-18 19:06 211 查看
--序列

---1.创建

create sequence sequence_name

start with 1---从1开始

increment by 1--自增1

minvalue 1--最小值1

nomaxvalue--不设最大值

nocycle--自增达到最大或自减达到最小时不重新开始,报错

cache 30---余弦分配好产生30个序列号的内存空间。

---2.使用

select sequence_name.nextval from dual

---3.修改删除

alter sequence sequence_name maxvalue 200

drop sequence sequence_name

具体实例:

CREATE table cdpt(

id number(6),

name varchar2(30),

constraint pk_id primary key(id)

)

CREATE SEQUENCE seq_cdpt

Increment By 1--初始值默认为1

Start With 1--每次增量为1

Maxvalue 99999--增量的最大上限

Minvalue 1--增量的最小底限

Nocycle

Nocache;

--修改序列的增量为2

Alter sequence seq_cdpt increment by 2;

--删除序列

drop sequence seq_cdpt;

--不使用触发器,在插入时在sql语句中调用序列

Insert Into cdpt Values(seq_cdpt.nextval,'序列');

Insert Into cdpt Values(seq_cdpt.nextval,'123');

Commit;

Select * From cdpt

--建立触发器,当有数据插入表时,使用oracle序列为其去的递增的主键值

Create Trigger cdpt_test Before Insert On cdpt

For Each Row

Begin

Select seq_cdpt.nextval Into:new.id From dual ;--小心这里的分号遗漏

End;--小心这里的分号遗漏

Insert Into cdpt Values('www');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: