禁用oracle约束与触发器,如何在导入过程中禁用Oracle约束条件和触发器

一个触发器试图修改或查询目前正在触发器语句修改的表。建议改一下你的触发器逻辑。

网上也有解释:

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:

04e0e380ad9e806bbb156f6a8d62c01f.png

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.