我们在项目中遇到oracle数据库需要进行对表增加自增字段,简单的分为两步:创建序列和创建触发器,详细步骤如下:

1、我们先创建一张测试表,进行测试:

2、创建序列,如下序列从1开始每次增加1最大为999999999:

create sequence ry_id_seq --(序列名)
increment by 1--(每次增加1)
start with 1--(从1开始)
maxvalue 999999999--(到这结束);

3、查询序列:序列查询一次就会自增一次,每次查询都比上次多1

select ry_id_seq(序列名).nextval from dual;

4、删除序列:测试序列创建成功后,如果经过查询,那么序列再进行使用序列开始就不在是1了,那么我们可以删除该序列重新创建新的序列进行正式使用

DROP SEQUENCE seq_xx(序列名);

5、创建触发器:触发器当我们要给表插入数据时,该数据为空时,触发器会调用序列进行填补该数据

create trigger ry_id_tri(触发器名) before
insert on info_ry_staff(表名) for each row
when (new.id is null) --当id为空插入时
begin
select ry_id_seq(序列).nextval into:new.id from dual;
end;

6、序列和触发器创建好之后,我们插入数据进行测试,如下测试结果:

创建好触发器后我们试试自增序列是否设置成功,如上图,我们对测试表进行数据插入,只插入name,id会对应填充并增加数值

7、删除触发器:如果不想使用了可以用下面命令进行删除触发器

DROP TRIGGER PERSON_trigger

特别提醒:
一个序列只能一个表用,触发器针对单独表,使用序列和触发器可以创建表的自增ID

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐