问题标签 [mutating-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
919 浏览

sql - 在删除触发器上选择表时突变触发器

请帮助解决以下问题。我有一个有两行的表,在删除一行时我写了一个触发器,我想将记录写入另一行的暂存表(staging_tbl)中,删除后将保留该表。但它会引发一个有效的变异触发错误。但是有没有办法我可以避免它并将记录写入临时表,只有主表中有 2 行,其中一个被删除(而不是表上的所有删除)。

0 投票
3 回答
2126 浏览

oracle - Copy row to history table before update without enumerating column names in PL/SQL trigger?

I am trying to create a PL/SQL trigger that copies the current version of a row into a history table when the row is updated. This can be easily done like this:

However, I would like to avoid enumerating all the column names since the tables bar and bar_history are identical and I don't want to update the trigger every time I change the table. I have tried two approaches, none of which are working. Is there any other way to solve this?

Approach 1:

Since you apparently can not use :old as a rowtype (see this question) I get the following error message:

PLS-00049: bad bind variable 'OLD'

Approach 2:

This also gives me an error:

ORA-04091: BAR is mutating, trigger/function may not see it

0 投票
2 回答
307 浏览

sql - 变异表 - 触发错误

我必须实现以下触发器:

1960 年以后的选举,每个选举年的总票数不超过 538

但是,我得到了变异表错误。我明白为什么我会收到错误消息,但我看不到其他解决方案(带触发器)。我可以创建一个临时表,但我只想拥有触发器。这是代码:

0 投票
1 回答
1815 浏览

sql - Oracle SQL创建触发器以增加每行的序列号

我正在尝试创建一个触发器,但我了解到我无法像第一次尝试那样设计它,如下所示。由于在修改表时从表中进行选择,这将导致“变异表”错误。一次只插入一条记录时,实际上并没有导致此错误,但是当我一次插入多条记录时,它确实会导致此错误。

触发器的目的是统计客户等于即将插入的客户的表中的记录数,并将新的order_num值设置为count+1。我还有一个由从序列中提取的触发器设置的公钥值。一旦我删除了触发器的 order_num 部分和相关的 SELECT,这部分就可以正常工作了。我怎样才能在这里实现我想要做的事情?提前致谢。

0 投票
1 回答
120 浏览

database - 更新后在 DML 触发器中调用对象成员函数(ORACLE 数据库)

我有一个带有PRODUCTS对象表的数据库,Product其中PRIMARY KEYEAN字段。每次更新一行时,我都想调用Product修改后的新对象的成员函数。我做了这个触发器:

但是当我更新PRODUCTS它给我这个错误:

正如我所怀疑的那样。有没有办法做到这一点?谢谢!

0 投票
1 回答
29 浏览

oracle - Oracle 触发器突变错误

这个触发器给出了变异错误,请帮助修复它。

0 投票
1 回答
54 浏览

oracle - 同时触发器使插入和更新变得困难

我在 Oracle 中有 4 个表:hotel, tourist, stay, leave. 该stay表涉及游客入住酒店,该leave表存储游客离开酒店的日期信息。

我有兴趣检查tenants_amount插入或更新hotel是否与表的内容一致stay,所以我写了这个触发器hotel

我还编写了第二个触发器,用于存储 的信息leave和管理 的tenants_amount属性hotel。当对 DML 进行操作时触发此触发器,stay因为它是表示此关系的表

最后,我尝试插入一些行:

我从酒店触发器中得到错误:

这就是发生的情况:当触发 的触发器时,stay它会尝试用 增加tenants_amount酒店的id=1,这是触发 的触发器的更新hotelhotel检查的触发器是否tenants_amount与的内容一致,stay但更改仍然不可见并且它没有找到任何行。这意味着tenants_amount应该为 0,但更新时将hotel其设置为 1。

我想知道如何解决这个问题。

0 投票
3 回答
16767 浏览

oracle - 如何在 Oracle 数据库 10g 中编写“IF UPDATING”触发器?

我正在编写一个触发器,以确保只能将一种类型的钱设置为官方货币。我的意图是编写一个“在插入或更新之前”触发器。INSERT 部分工作正常,但问题是对 UPDATING 部分进行编码,因为当我尝试更新表时,我收到 ORA-04091“突变表”。你有什么主意吗?

表(只能设置一条记录为'Y'):

扳机:

0 投票
2 回答
73 浏览

sql - 触发变异错误

我在 schema1 中有 emp 表,在 schema2 中有 emp_fianl。

当 schema1 emp 表中的状态更改为完成时,我必须创建一个触发器以在 Schema2 emp_final 表中插入数据。我在下面写了相同的触发器:

我收到上述代码的变异错误消息。当我尝试更新 emp 表中的状态时。我是一名 java 开发人员,在 Oracle、SQL 方面没有太多经验。有人可以帮忙吗?

0 投票
1 回答
96 浏览

sql - 更新前的 Oracle SQL 变异表触发器

我想为表创建一个更新触发器。触发器已创建,但是当我更新 column 时finish,它说 mutating table。

这是我的代码

这个触发器给了我“变异表”错误,到目前为止我一直无法修复它。有什么建议吗?谢谢