首先建立兩張測試表:
create table test ( t_id number(4), t_name varchar2(20), t_age number(2), t_*** char );
create table test_log ( caozuo varchar2(20),tdate date );
然後建立觸發器並且進行測試:
create or replace trigger test_trigger
after delete or insert or update on test
declare v_type test_log.caozuo%type;
begin
if inserting then
--insert觸發
v_type := 'insert';
dbms_output.put_line('記錄已經成功插入,並已記錄到日誌');
elsif updating then
--update觸發
v_type := 'update';
dbms_output.put_line('記錄已經成功更新,並已記錄到日誌');
elsif deleting then v_type := 'delete';
dbms_output.put_line('記錄已經成功刪除,並已記錄到日誌');
end if;
insert into test_log values(v_type, sysdate);
end;
然後進行測試:
執行insert語句:
insert into test values(101,'zhao',22,'m');
此時查詢select * from test_log表會生成記錄:
oracle觸發器簡單實用示例
分為行級與語句級 行級就是每受影響的一行就觸發改行一次,語句級就是觸發一次語句執行一次,不論該語句影響了幾行 20200429加入 begin 刪除 更新都有 old與 new,插入只有 new 如果操作表的時候,在乙個語句塊內,觸發器執行異常,則該語句塊將全部回滾,如 觸發器 create or ...
oracle序列觸發器簡單實現示例
建立oracle主鍵自增長 1.建表 create table test id number 10 primary key,name varchar2 20 2.建立序列 create sequence test sequence minvalue 1 自增最小值 maxvalue 9999999 ...
Oracle資料庫簡單觸發器示例
建立觸發器dept trigger create or replace trigger dept trigger 觸發條件 對dept bak中每行資料進行插入編輯刪除時觸發 before insert or update or delete on dept bak for each row beg...