Oracle觸發器Trigger4觸發條件_when的使用


/*
同一表使用所有條件
Create or replace trigger t5 
      Before  insert,delete,update  on 表名
     For each row
    //plsql塊

*/
/*
在觸發器中,還有三個變量:都是boolean
    INSERTING 正在執行insert嗎。
    DELETING
    UPDATING

*/
select TABLE_NAME from USER_TABLES;
select * from trigger_t2;
desc trigger_t2;
create or replace trigger t4
before INSERT OR UPDATE or delete on trigger_t2
  FOR EACH ROW
  declare
  begin
  if inserting then
  dbms_output.put_line('寫入');
  elsif deleting then
  dbms_output.put_line('刪除');
  else 
  dbms_output.put_line('更新');
end if;
end;
---測試
set serveroutput on;
insert into trigger_t2 values(1,'jk',23);
delete from trigger_t2 where id=1;
update trigger_t2 set name='kk';
---------------------------------------------------
---------------------------------------------------
--使用when語句設置條件
create or replace trigger t5
before INSERT on trigger_t2
  FOR EACH ROW
  when (NEW.age<=18)
  declare
  begin
  DBMS_OUTPUT.PUT_LINE('大於20是:'||:NEW.age);
  RAISE_APPLICATION_ERROR(-20000, '年齡小於18不能參與');
end;
set serveroutput on;
INSERT INTO TRIGGER_T2 VALUES(4,'KK',22);
/*
--禁用trigger
alter trigger t4 disable;
alter trigger t4 enable;
--修改名稱
alter trigger t4 rename to t5;
*/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM