首先宣告,經多方考證和本人的驗證,oracle中執行觸發器時,是可以修改本表的資料庫的,等會具體講。
首先見表
create table test
id varchar2(30),
value varchar2(30)
insert into test values('0001','wang');
insert into test values('0002','dong');
select * from test;
id value
0001 wang
0002 dong
create or replace trigger tg_test
after insert on test
for each row
declare
pargma autonomous_transaction;//宣告自治事務,如果沒有這個自治宣告,是不能修改本表資料的,(關鍵)
begin
update test set value=:new.value where id='0001';
commit;
end;
//:new ,表示訪問操作完成後列的值,:old,表示訪問操作前列的值
insert into test values('0003','xin');
select * from test;
id value
0001 xin
0002 dong
0003 xin
完畢!再有幾點注意,
1,寫sql的時候要養成乙個習慣,就是盡量使用大寫,因為oracle裡面sql執行的時候是先將裡面的小寫轉換成大寫,如果你本來就是大寫格式的話回省去一道工序了,節省時間。
PLSQL 除錯觸發器
在plsql裡是可以除錯觸發器的,相信有一部分人可能不清楚這個。以前我一直使用sql server,哈哈,養成了乙個根深蒂固的觀念,以為oracle裡觸發器也是不能除錯的,其實sqlserver裡面也是可以除錯的 寫這個的時候特意 在網上查詢了下資料 好了,為了形象說明,下面列舉個例子,如下圖所示,...
mysql 更新本表觸發器
例項 create definer root trigger jq jq jam event t before update before update on jq jam event t for each row begin if new.duration 120 then set new.zt ...
PL SQL學習筆記 觸發器
一 語句級觸發器 語句級觸發器是指當執行dml操作時,以語句為單位執行的觸發器 注意與下面提到的行級觸發器比較 先看 create or replace trigger xland trigger before insert or update or delete on labor.xland be...