oracle觸發(fā)器中增刪改查本表
(1)只有before insert觸發(fā)器中才可以查詢或更新本表
create or replace trigger tri_test_ins
before insert
on test
for each row
declare
? v_cnt integer;
begin
?select count(*) into v_cnt from test;
?dbms_output.put_line('test count:'||to_char(v_cnt));
?update test set a9='99';
end;
執(zhí)行insert后,只有當前插入的記錄值不是99,其它的記錄都被更新成了99。
(2)before/after update、before/after delete、after insert5種情況都不可以查詢或更新本表。
(3)使用自治事務可以實現(xiàn)任意觸發(fā)器查本表。但不能實現(xiàn)在自治事務中更新本表。
? 查詢本表的情況是最常見的。
create or replace trigger tri_test_ins
after update
on test
for each row
declare
? v_cnt integer;
? PRAGMA AUTONOMOUS_TRANSACTION;
begin
?begin
??????? select count(*) into v_cnt from test;
??????? dbms_output.put_line('test count:'||to_char(v_cnt));
?end;
end;
(4)使用自治事務可以實現(xiàn)新增或刪除本表的記錄。這種情況一般不會用到。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
