【发布时间】:2015-06-28 21:37:14
【问题描述】:
当在另一个表上进行插入时,我创建了一个触发器来在一个表中插入一个日志。
这是触发器的代码:
CREATE OR REPLACE TRIGGER scheme1.Inserting_Feed
AFTER INSERT ON scheme2.payments FOR EACH ROW
BEGIN
INSERT INTO scheme2.db-logger(ID, TECHNOLOGY, WORKFLOW, NAME_EVENT, TIME_EVENT)
VALUES(:NEW.id,'Repository','UP',(select repo.name
from scheme1.repository repo
join scheme2.payments pay
on repo.id = pay.repository_id
where repo.id = NEW.repository_id), SYSDATE);
END;
我尝试运行此触发器,但是当我在表支付上进行插入时,我收到以下错误:
错误 MT101-GENERAL_LOAD_ERROR: java.sql.SQLSyntaxErrorException: ORA-04091: 表 scheme1.payments 正在变异,触发器/函数可能 看不到它 ORA-06512:在“scheme1.Inserting_Feed”,第 2 行 ORA-04088: 执行触发器“scheme1.Inserting_Feed”时出错
我的理解是错误表示表正在更改,但触发器没有看到它。这是怎么来的?
【问题讨论】: