0

私はかなり長い間この問題に悩まされてきました....誰か助けてくれますか?
実装したいのは次のとおりです。テーブルAがあり、Aにはid、count、totalという属性があります。ここでは、そのようなトリガーを実装する必要があります。テーブル A のカウントが更新された場合、トリガーは合計を 1 に設定します。

私の最初のコードは次のようなものです:

    CREATE OR REPLACE TRIGGER tri_A AFTER UPDATE OF count ON A
    FOR EACH ROW
    BEGIN
    UPDATE A SET total = 1 WHERE id = :new.id;
    END;
    /

これに関する問題は、変更テーブルです。テーブルが更新されると、テーブルはロックされます。答えを探して、プラグマautonomous_transactionを試してみましたが、無効なトリガー指定エラーが発生しました。また、これを行うにはトリガーの組み合わせを使用する必要があるというコメントが他にもあります....これを行う方法がわかりません

4

1 に答える 1

1

が主キーであると仮定すると、テーブルidは必要ありません。UPDATE設定したいだけです:new.totalBEFORE UPDATEまた、トリガーではなくトリガーでこれを行う必要がありますAFTER UPDATE

CREATE OR REPLACE TRIGGER tri_A 
  BEFORE UPDATE OF count ON A
  FOR EACH ROW
BEGIN
  :new.total := 1;
END;
于 2013-02-23T07:09:46.043 に答える