在Oracle11g中使用触发器中的提交

在Oracle11g中使用触发器中的提交,oracle,Oracle,我在oracle中创建了以下触发器- create or replace TRIGGER TODAY_TD_INSERT AFTER INSERT ON table1 FOR EACH ROW DECLARE BEGIN INSERT INTO table2 (col1 ,col2 ,col3 ) VALUES (:NEW.,col1 ,:NEW.,col2 ,:NEW.,col3 ); END; 因此,如果在表1中插入任何数据,表

我在oracle中创建了以下触发器-

create or replace TRIGGER TODAY_TD_INSERT AFTER INSERT ON table1 
FOR EACH ROW
DECLARE
BEGIN             
  INSERT INTO table2 (col1
  ,col2
  ,col3
  ) 
  VALUES (:NEW.,col1
  ,:NEW.,col2
  ,:NEW.,col3
  );
END;

因此,如果在表1中插入任何数据,表2中也会插入相同的数据。所以我的问题是我是否需要提交新表2中的数据?到目前为止,我知道我们不能使用从触发器提交

不,你没有。对放置触发器的表进行更改的会话发出提交(或回滚),该提交适用于该会话所做的所有更改。

看看这是真的。不能在触发器内提交。如果您想提交,您可以使用
自治事务
,这是
不推荐的。
自治事务
可以独立于实际事务的成功记录尝试的
插入