当前位置:Gxlcms > 数据库问题 > Oracle实现自增方式:序列+触发器

Oracle实现自增方式:序列+触发器

时间:2021-07-01 10:21:17 帮助过:2人阅读

1 maxvalue 99 start with 1 increment by 1 nocache;

 

然后执行如下sql语句,在S_Depart插入一条记录,执行3次,看到DEPARTID实现了自增

insert into S_Depart(departId,Departname,Departorder)values(S_S_Depart.Nextval,wang,1);

技术分享

已经引用序列sequence实现了自增,

 

但是,当在表中手动添加记录时,还是需要添加DEPARTID,因为建表时设置它是主键,not null

那么,怎么只输入DEPARTNAME、 DEPARTORDER,然后保存、commit,实现DEPARTID引用sequence自增呢?

技术分享

这时需要用到触发器

 

3、创建触发器的sql语句如下:

create or replace trigger tri_test_id
  before insert on S_Depart   --S_Depart 是表名
  for each row
declare
  nextid number;
begin
  IF :new.DepartId IS NULL or :new.DepartId=0 THEN --DepartId是列名
    select S_S_DEPART.nextval --S_S_DEPART正是刚才创建的
    into nextid
    from sys.dual;
    :new.DepartId:=nextid;
  end if;
end tri_test_id;

 此时,只输入DEPARTNAME、 DEPARTORDER,然后保存、commit,

DEPARTID引用sequence实现了自增

Oracle实现自增方式:序列+触发器

标签:

人气教程排行