数据库中表主键ID自增设置
我们在项目中遇到oracle数据库需要进行对表增加自增字段,简单的分为两步:创建序列和创建触发器,详细步骤如下:1、我们先创建一张测试表,进行测试:2、创建序列,如下序列从1开始每次增加1最大为999999999:create sequence ry_id_seq(序列名)increment by 1(每次增加1)start with 1(从1开始)maxvalue 999999999(到这结束)
·
我们在项目中遇到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
更多推荐
已为社区贡献3条内容
所有评论(0)