oracle基于序列创建自动增长ID

我们知道在mysql数据库中,在建表语句中可以直接输入auto_increment字段来实现ID的自增长,然而在oracle中并未提供自增长的关键字,因此在oracle中我们需要按照以下步骤实现自动增长字段。

第一步:创建序列

-- Create sequence

create sequence SEQ_CFG_MONITOR_PROGRAM  --序列名称

minvalue 1  --最小值

maxvalue 9999999999999999999999999999  --最大值

start with 41  --当前从41开始

increment by 1  --每次自增1

cache 10;

第二步:创建触发器

create or replace trigger 触发器名称 before

 insert on 作用表名称 for each row /*对每一行都检测是否触发*/

begin

 select seq_cfg_monitor_program.nextval into:New.id from dual;

 end;

好了,到这里当你再插入表记录时就可以直接不用插入ID,表也会自动插入自增长的ID,如下

create table aa(
 id number(10) not null,
 name varchar2(20)
)
insert into aa(name) values('xiaoming');

此时ID会自动填入表中,当然如果不怕麻烦或者说数据量不大的情况下,我们也可以手动调用序列,实现ID的增长,比如以上插入语句我们可以改写成insert into aa(id,name) values(seq_cfg_monitor_program.nextval,'xiaoming');这样也是可以的,当然如果这种情况,我想你也就不需要序列了,直接手动插入ID即可,比如这样写insert into aa(id,name) values(1,'xiaoming');

总结

使用序列自增长注意事项

1.数据量大,且一般通过程序或者应用程序插入时应该采用自增长序列。

2.原则上在使用序列的场合应该遵循一表对应一序列原则,这样也便于表数据的维护。

转载:https://blog.csdn.net/z4331016/article/details/81333876 
 

猜你喜欢

转载自blog.csdn.net/LMAKE_nbsp/article/details/85464415