如果是行级触发器,emp表上插入几行就会执行多少次,每次插入10条记录
P.S. 触发器中不能有commitA row trigger fires each time the table is affected by the triggering statement. For example, if a statement updates multiple rows, then a row trigger fires once for each row affected by the UPDATE. If a triggering statement affects no rows, then a row trigger is not run.A statement trigger is fired once on behalf of the triggering statement, regardless of the number of rows affected by the triggering statement.
P.S. 触发器中不能有commitA row trigger fires each time the table is affected by the triggering statement. For example, if a statement updates multiple rows, then a row trigger fires once for each row affected by the UPDATE. If a triggering statement affects no rows, then a row trigger is not run.A statement trigger is fired once on behalf of the triggering statement, regardless of the number of rows affected by the triggering statement.
解决方案 »
- 视图与表嵌套的查询的效率问题,原理何在?
- 关于字符编码的问题。
- myeclipse连接oracle出java.lang.ClassNotFoundException: sun.jdbc.driver.OracleDriver
- 在oracle 中向表中插入数据的简单问题?请大家进来看看吧
- instance sid has been terminated!!!!!!!
- 文件几个简单的问题
- 如何通过日期差值和初始日期得到目标日期?waiting....
- 我是SQL SERVER那边叛逃过来的,请问哪里可以找到Oracle各个版本的价目表呀?
- 为什么oracle里的表在sqlplus里能显示,而在 sql explorer 中没有呢?
- oracle本地连接(sid为orcl但plsql登录必须写成localhost:1521/ORCL.PAICDOM.LOCAL才行!!!!)
- oracle 绑定变量
- 如何在oracle中 查询图状结构的数据
我写这个trigger怎么没生效呀,我向emp新插入一数据,再查employee,没有插入10条记录呀,一条都没有
Table created
SQL>
SQL> CREATE OR REPLACE TRIGGER tr_insert_employee
2 after insert
3 ON scott.emp
4 FOR EACH ROW
5 BEGIN
6 for i in 1..10 loop
7 INSERT INTO employee(id,name,salary )
8 VALUES( 100+i,'trigger_test',100+i);
9 end loop;
10 END;
11 /
Trigger created
SQL> insert into scott.emp(empno)values(999);
1 row inserted
SQL> select * from employee;
ID NAME SALARY
---------- -------------------------------------------------------------------------------- ----------
101 trigger_test 101
102 trigger_test 102
103 trigger_test 103
104 trigger_test 104
105 trigger_test 105
106 trigger_test 106
107 trigger_test 107
108 trigger_test 108
109 trigger_test 109
110 trigger_test 110
10 rows selected
SQL> 如果触发器成功创建,看看是不是往emp中插入数据后没有commit,并且在另一个会话中查看employee表
我写这个trigger怎么没生效呀,我向emp新插入一数据,再查employee,没有插入10条记录呀,一条都没有
先看看触发器生效了没?
触发器的“COMMIT”是有外面的DML操作后的COMMIT触发的
行级触发器你可以简单的理解为 你的外面的DML操作涉及到了多少行,触发器执行多少次
语句触发器是不管你外面的DML语句操作涉及多少行,如10行或100行,仅仅触发触发器一次