更新后的突变表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新后的突变表相关的知识,希望对你有一定的参考价值。

有人可以告诉我如何避免此突变表错误(ORA-04091)我必须为此作业使用更新后触发器。

AFTER UPDATE OF QTY,ACTUALPRICE  ON ITEM
FOR EACH ROW
DECLARE
BEGIN
    UPDATE ITEM
    SET ITEMTOT = :new.QTY * :new.ACTUALPRICE
    WHERE ORDID = :old.ORDID AND ITEMID = :old.ITEMID;
END;
答案

您无法再次在查询本身内触发触发器的表上运行查询。就您而言,我认为您的触发器可以重写为仅设置BEFORE UPDATEITEMTOT触发器:

BEFORE UPDATE OF QTY,ACTUALPRICE ON ITEM
FOR EACH ROW
    :new.ITEMTOT = :new.QTY * :new.ACTUALPRICE
END;

以上是关于更新后的突变表的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个视图中处理突变后的缓存更新?

GraphQL 突变后的 updateQueries 无法与 Apollo 客户端一起使用

GraphQL 突变后的 updateQueries 无法与 Apollo 客户端一起使用

变异后的Apollo缓存未更新

Sequelize with GraphQl:如何使用突变更新字段

阿波罗读取乐观响应的片段