oracle触发器可否实现警告,之后继续执行
- 提问者网友:战皆罪
- 2021-03-09 10:23
- 五星知识达人网友:老鼠爱大米
- 2021-03-09 11:51
你需要再定义一个触发器B,当触发器A被触发时 触发 触发器B
然后具体什么警告你可以写在触发的逻辑代码中
- 1楼网友:举杯邀酒敬孤独
- 2021-03-09 14:15
- 2楼网友:时间的尘埃
- 2021-03-09 12:57
一个触发器试图修改或查询目前正在触发器语句修改的表。建议改一下你的触发器逻辑。
网上也有解释:
error: ora-04091: table name is mutating, trigger/function may not see it
cause: a statement executed a trigger or custom pl/sql function. that trigger/function tried to modify or query a table that is currently being modified by the statement that fired the trigger/function.
action: the options to resolve this oracle error are: rigger/function so that it does not try to modify/query the table in question. for example, if you've created a trigger against the table called orders and then the trigger performed a select against the orders table as follows:
create or replace trigger orders_after_insert after insert on orders for each row
declare v_quantity number;
begin
select quantity into v_quantity from orders where order_id = 1;
end;
you would receive an error message as follows:
when you create a trigger against a table, you can't modify/query that table until the trigger/function has completed.
remember that you can always use the :new and :old values within the trigger, depending on the type of trigger.