Oracle觸發器觸發級別
這篇文章用實驗討論Oracle觸發器的觸發級別問題。
1.建立測試環境:
create table a(id number);
create table b(id number);
begin
for i in 1 .. 100 loop
insert into a values (i);
commit;
end loop;
end;
/
create or replace trigger a_t_b
after insert or update or delete on a
for each row
declare
-- local variables here
begin
insert into b values (1);
end a_t_b;
2.測試每行觸發:
SQL> begin
2 update a set id=1 where id in(1,2,3,4,5,6,7,8,9);
3 delete from a where id>90;
4 end;
5 /
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select * from b;
ID
----------
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
19 rows selected
雖然只有兩條SQL語句,但是兩條語句操作了19行資料,所以這裡產生了19個觸發事件。
3.測試語句觸發:
SQL> truncate table b;
Table truncated
修改觸發器,註釋for each row行。
create or replace trigger a_t_b
after insert or update or delete on a
-- for each row
declare
-- local variables here
begin
insert into b values (1);
end a_t_b;
SQL> begin
2 update a set id=2 where id in (11,12,13,14,15,16);
3 delete from a where id>80;
4 end;
5 /
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select * from b;
ID
----------
1
1
雖然同樣修改了多行記錄,但只有兩條SQL語句,所以只產生了兩個觸發事件。還需要注意的是觸發事件發生在操作行記錄和SQL語句級別,而非發生在事務級別,跟事務沒關係。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-712450/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle觸發器Oracle觸發器
- oracle巧用觸發器提高資料庫安全級別Oracle觸發器資料庫
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- ORACLE DDL觸發器Oracle觸發器
- Oracle之觸發器Oracle觸發器
- oracle ddl 觸發器Oracle觸發器
- SQL Server資料庫級別觸發器SQLServer資料庫觸發器
- ORACLE觸發器詳解Oracle觸發器
- Oracle登陸觸發器Oracle觸發器
- oracle 觸發器-表同步Oracle觸發器
- Oracle 登入觸發器Oracle觸發器
- oracle 觸發器 client 事件Oracle觸發器client事件
- Oracle開發基礎-觸發器Oracle觸發器
- oracle 批量刪除觸發器Oracle觸發器
- oracle 觸發器的例項Oracle觸發器
- Oracle 觸發器 限制DDL操作Oracle觸發器
- 【SQL Server】-- 一觸即發之觸發器SQLServer觸發器
- MySQL觸發器MySql觸發器
- mysql——觸發器MySql觸發器
- mysql 觸發器MySql觸發器
- SQL觸發器SQL觸發器
- Mysql觸發器:MySql觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- Oracle 觸發器中使用遊標Oracle觸發器
- Oracle觸發器詳細介紹Oracle觸發器
- mysql繞過行觸發器,實現語句觸發器MySql觸發器
- sqlserver 列觸發器SQLServer觸發器
- 除錯觸發器除錯觸發器
- 建立MySQL觸發器MySql觸發器
- SqlServer-觸發器SQLServer觸發器
- MySQL使用觸發器MySql觸發器
- MySql-觸發器MySql觸發器
- MySQL 建立觸發器MySql觸發器
- mysql建立觸發器MySql觸發器
- SQL Server 觸發器SQLServer觸發器
- postgresql 觸發器操作SQL觸發器
- 觸發器詳解觸發器