Oracle通过触发器实现字段自增

一、命令模板和解析

1、查看指定用户下所有的自增序列(两种方式)

-- 查询指定用户下的所有自增序列
select sequence_owner,sequence_name from dba_sequences where sequence_owner='USER'		 -- 方法一 USER为用户名
select owner, object_name from dba_objects where object_type='SEQUENCE' and owner='USER'  -- 方法二 USER为用户名

2、创建自增序列

create sequence SEQ_XXX_XXX   -- 序列名称
minvalue 1					 -- 最小值
maxvalue 9999999999999		  -- 最大值
start with 1				 -- 起始值
increment by 1				 -- 增量
cache 20;					 -- 高速缓存大小(一般不需要用)

3、查看指定用户下的所有触发器(两种方式)

 -- 查询指定用户下的触发器
 select owner, trigger_name from dba_triggers where owner='USER'						-- 方法一 USER为用户名
 select owner, object_name from dba_objects where object_type='TRIGGER' and owner='USER'  -- 方法二 USER为用户名

4、创建触发器

create or replace trigger TRI_XXX_XXX 						-- 触发器名称
before insert on tb_xxx for each row						-- 触发规则, tb_xxx表明
begin
	select SEQ_XXX_XXX.nextval into:new.oracle_sn from dual	  -- SEQ_XXX_XXX序列名,oracle_sn自增列
end;

二、实战使用

1、查看指定用户下所有的自增序列(两种方式)

-- 查询指定用户下的所有自增序列
select sequence_owner,sequence_name from dba_sequences where sequence_owner='PLATFORM'		 -- 方法一
select owner, object_name from dba_objects where object_type='SEQUENCE' and owner='PLATFORM'  -- 方法二

2、创建老化检测结果自增序列

create sequence SEQ_AGING_RACK_NO
minvalue 1
maxvalue 9999999999999
start with 1
increment by 1;

3、查看该用户下的所有触发器

select owner, trigger_name from dba_triggers where owner='PLATFORM'

4、创建AGING_RACK_NO表的触发器,实现ORACLE_SN字段新增

create or replace trigger TRI_AGING_RACK_NO
before insert on AGING_RACK_NO for each row
begin
	select SEQ_AGING_RACK_NO.nextval into :new.ORACLE_SN from dual
end;

猜你喜欢

转载自blog.csdn.net/weixin_42164880/article/details/124102550
今日推荐