新しい行が追加されたときに、同じテーブルの別の1つ(notubesleft)に1つの列の値をコピーするトリガを作成しようとしています。 。正しくコンパイルされたが、私は新しい行を挿入するとき、それはエラーをスローSQLトリガは正しくコンパイルされますがエラーをスローします
私のトリガーは次のとおりです。
create or replace TRIGGER NOTUBESLEFT_INSERT_TRIGGER
AFTER INSERT ON SAMPLES FOR EACH ROW BEGIN
update samples
set notubesleft = (select notubes from samples where sampleid = :new.sampleid);
END;
私は新しい行をコミットしようとすると、私はエラーを取得する:
One error saving changes to table "APEX_WS_PROMETHEUS"."SAMPLES":
Row 10: ORA-04091: table APEX_WS_PROMETHEUS.SAMPLES is mutating, trigger/function may not see it
ORA-06512: at "APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER", line 2 ORA-04088: error during execution of trigger 'APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER'
ORA-06512: at line 1
私は新しいqを求めていますなぜなら、トリガのPL/SQLコードをどのように構造化するかの解決策を見つけることができたからですが、なぜそれが機能しないのかわかりません。
ありがとうございました。
なぜ後挿入トリガーでこれを実行しようとしていますか? –
私は最初にテーブルに値を挿入してから別の列に値を設定する必要があると思ったので、それが私の最初の引き金です。 – Matte