Orcale序列_触发器

Oracle序列*触发器

使用序列和触发器实现Oracle数据库主键的自动递增

  1. 序列【重点】:

I. 语法:create sequence序列名 [参数];

II. 详解:用来生成一列自动增长的值。

create sequence seq_class

[minvalue 值] --最小值

[maxvalue 值] --最大值

[start with ] --起始值

[increment by 值] --递增数

[cache 缓存个数] --每次生成时,可一次获取多个序列编号,避免每次生成都访问数据库服务器。

[cycle] --循环,当生成序列数达到maxvalue后,是否循环使用。根据业务,允许不唯一的列可以使用。

[order] --保证获取顺序。当数据量庞大时,序列只能保证顺序的唯一性,而不保证数据的序列数的顺序。1~1021~3011~20

注:默认start with 1 increment by 1

用例

-- 再建一个序列 seq_document_fid
create sequence seq_document_fid
minvalue 1        --最小值
nomaxvalue        --不设置最大值
start with 1      --从1开始计数
increment by 1    --每次加1个
nocycle           --一直累加,不循环
nocache         --不建缓冲区
/

--只有了表和序列还不够,最好再建一个触发器来执行它
CREATE OR REPLACE TRIGGER tg_document 
BEFORE INSERT ON t_document FOR EACH ROW WHEN (new.fid is null)
begin
select seq_document_fid.nextval into:new.fid from dual;
end;
/

注:

drop sequence 序列名; --删除序列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值