Oracle创建序列触发器

declare 
      num   number; 
begin
-- prompt dropping sequence 
      num := 0;
      select count(1) into num from user_sequences where sequence_name = 'COMMON_MYTASK_SEQUENCE'; 
      if num > 0 then   
         execute immediate 'DROP SEQUENCE  COMMON_MYTASK_SEQUENCE';   
      end if;
-- prompt dropping trigger      
      num := 0;
      select count(1) into num from user_triggers where trigger_name = 'COMMON_MYTASK_TG'; 
      if num > 0 then   
         execute immediate 'DROP TRIGGER  COMMON_MYTASK_TG';   
      end if;
-- prompt Dropping 
      num := 0;
      select count(1) into num from user_tables where TABLE_NAME = 'T_COMMON_MYTASK';
      if   num=1   then 
          execute immediate 'drop table T_COMMON_MYTASK'; 
      end   if; 


end;
/


--我的任务表
CREATE TABLE T_COMMON_MYTASK(
	id                NUMBER               NOT NULL,
	process_definition_id varchar2(100)	not null,--流程定义id
	request_staff_id	number		not null,--请求人id
	approver_id		number		not null,--审批人id
	process_type		number		not null,--流程类型:入廊;巡检;....
	crt_time	date,--申请时间
	
   CONSTRAINT PK_T_COMMON_MYTASK PRIMARY KEY ("ID")
);


--create sequence
create sequence COMMON_MYTASK_SEQUENCE
start with 1
increment by 1
nomaxvalue
nocycle
cache 20;
-- create trigger
CREATE OR REPLACE TRIGGER COMMON_MYTASK_TG
  BEFORE INSERT ON T_COMMON_MYTASK
  FOR EACH ROW
  WHEN (new.id is null)
begin
  select COMMON_MYTASK_SEQUENCE.nextval into :new.id from dual;
end COMMON_MYTASK_TG;
/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值