PLSQL 觸發器篇 修改本表

2021-05-02 05:46:37 字數 899 閱讀 2316

首先宣告,經多方考證和本人的驗證,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...