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后,只有當(dāng)前插入的記錄值不是99,其它的記錄都被更新成了99。
(2)before/after update、before/after delete、after insert5種情況都不可以查詢或更新本表。
(3)使用自治事務(wù)可以實(shí)現(xiàn)任意觸發(fā)器查本表。但不能實(shí)現(xiàn)在自治事務(wù)中更新本表。
? 查詢本表的情況是最常見的。
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)使用自治事務(wù)可以實(shí)現(xiàn)新增或刪除本表的記錄。這種情況一般不會(huì)用到。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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