[原創] 有關觸發器 ORA-04091解決方法
YXYUP@dbatest>create table t_trigger(f1 number,f2 number,f3 number);
Table created.
YXYUP@dbatest>create or replace trigger test_trigger
2 after update of f2 on t_trigger
3 for each row
4 BEGIN
5 update t_trigger
6 set f3 = 0
7 where f1 = :new.f1 ;
8 END;
9 /
Trigger created.
Elapsed: 00:00:00.16
YXYUP@dbatest>
YXYUP@dbatest>insert into t_trigger values(1,1,1);
1 row created.
Elapsed: 00:00:00.01
YXYUP@dbatest>commit;
Commit complete.
Elapsed: 00:00:00.01
YXYUP@dbatest>select * from t_trigger;
F1 F2 F3
---------- ---------- ----------
1 1 1
Elapsed: 00:00:00.02
YXYUP@dbatest>
YXYUP@dbatest>
YXYUP@dbatest>update t_trigger set f2=0;
update t_trigger set f2=0
*
ERROR at line 1:
ORA-04091: table YXYUP.T_TRIGGER is mutating, trigger/function may not see it
ORA-06512: at "YXYUP.TEST_TRIGGER", line 2
ORA-04088: error during execution of trigger 'YXYUP.TEST_TRIGGER'
YXYUP@dbatest>create or replace trigger test_trigger
2 after update of f2 on t_trigger
3 for each row
4 BEGIN
5 :new.f3:=0;
6 END;
7 /
create or replace trigger test_trigger
*
ERROR at line 1:
ORA-04084: cannot change NEW values for this trigger type
YXYUP@dbatest>select * from t_trigger;
F1 F2 F3
---------- ---------- ----------
1 1 1
Elapsed: 00:00:00.01
YXYUP@dbatest>create or replace trigger test_trigger
2 after update of f2 on t_trigger
3 for each row
4 BEGIN
5 :new.f3:=0;
6 END;
7 /
create or replace trigger test_trigger
*
ERROR at line 1:
ORA-04084: cannot change NEW values for this trigger type
YXYUP@dbatest>
YXYUP@dbatest>create or replace trigger test_trigger
2 before update of f2 on t_trigger
3 for each row
4 BEGIN
5 :new.f3 :=0;
6 END;
7 /
Trigger created.
Elapsed: 00:00:00.04
YXYUP@dbatest>select * from t_trigger;
F1 F2 F3
---------- ---------- ----------
1 1 1
Elapsed: 00:00:00.01
YXYUP@dbatest>update t_trigger set f2=0;
1 row updated.
Elapsed: 00:00:00.00
YXYUP@dbatest>commit;
Commit complete.
Elapsed: 00:00:00.01
YXYUP@dbatest>select * from t_trigger;
F1 F2 F3
---------- ---------- ----------
1 0 0
Elapsed: 00:00:00.00
YXYUP@dbatest>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7364032/viewspace-604230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-04091 觸發器/函式不能讀觸發器函式
- oracle變異表觸發器相關問題解決Oracle觸發器
- oralce觸發器解決問題觸發器
- ORA-04091錯誤解決
- OGG同步複製時與相容觸發器解決方法觸發器
- Oracle觸發器死鎖問題解決Oracle觸發器
- 觸發器詳解觸發器
- 【原創】建立DDL觸發器捕捉schema所有物件改變的記錄觸發器物件
- 【原創】 演示一個通過觸發器進行審計的示例觸發器
- 批量更新時無法觸發事件的解決方法事件
- ORACLE觸發器詳解Oracle觸發器
- 【Vegas原創】解決cmd視窗不夠使用的方法
- SQL Server:觸發器詳解SQLServer觸發器
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- MySQL全面瓦解17:觸發器相關MySql觸發器
- 關於SQL SERVER觸發器的理解SQLServer觸發器
- 利用觸發器解決更新主鍵衝突的問題觸發器
- SQL觸發器例項講解SQL觸發器
- zabbix觸發器表示式詳解觸發器
- Oracle觸發器觸發級別Oracle觸發器
- mysql主從和觸發器的關係MySql觸發器
- 關於 Laravel increment 與 decrement 不能觸發觀察者模式的解決方案LaravelREM模式
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- 【原創】drop操作與dual還是有很大關係的(ORA-01031錯誤的解決)
- [原創] ORA-22868 快速解決
- mysql——觸發器MySql觸發器
- mysql 觸發器MySql觸發器
- SQL觸發器SQL觸發器
- Mysql觸發器:MySql觸發器
- Oracle觸發器Oracle觸發器
- mysql觸發器MySql觸發器
- jQuery中click事件多次觸發解決方案jQuery事件
- 問題解決方法有三
- 【SQL Server】-- 一觸即發之觸發器SQLServer觸發器
- 有關Unity使用Rider編輯器無法彈出程式碼提示的有效解決方法UnityIDE
- mysql繞過行觸發器,實現語句觸發器MySql觸發器
- 伺服器高併發三種解決方法為:伺服器