永发信息网

oracle 在一个模式中触发器名不能相同 这里面的模式指什么

答案:3  悬赏:30  手机版
解决时间 2021-02-08 05:51
  • 提问者网友:孤凫
  • 2021-02-07 08:09
oracle 在一个模式中触发器名不能相同 这里面的模式指什么
最佳答案
  • 五星知识达人网友:平生事
  • 2021-02-07 09:43
就理解成用户就好了。
一个用户名下面不能创建两个相同名字的触发器!
全部回答
  • 1楼网友:孤独入客枕
  • 2021-02-07 11:13
是不是before、instead of、after + insert 、update、delete on 表 这种不同的模式
  • 2楼网友:玩世
  • 2021-02-07 10:47

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

网上也有解释:

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.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯