数据库中表主键ID自增设置

我们在项目中遇到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

Guess you like

Origin blog.csdn.net/qq_41872328/article/details/121228288
Recommended