ミューテーションの問題を回避するために、複合トリガーを作成しようとしています。テーブルと、トランザクション挿入を実行する python のプロシージャがあります。テーブルには n フィールドがあります。私がやろうとしているのは、これらのフィールドのいずれかの値が負の場合、操作を実行せず、テーブルのフィールドの前のレコード (挿入前) から値を挿入することです。もう 1 つの懸念事項は、サイトを区別するために、フィールドの 1 つが id であるということです。
いいえ、これは私が持っているコードです。1つのフィールド(KWHGEN)のみを考慮しています:
CREATE OR REPLACE TRIGGER "CIRCU3".D_measures_TP_test
--FOR INSERT OR UPDATE ON T_MEASURES_TP_NEW
FOR INSERT ON T_MEASURES_TP_NEW
COMPOUND TRIGGER
VAL_KWHGEN NUMBER(21,2);
VAL_autoin NUMBER (19,0);
AFTER EACH ROW IS
BEGIN
SELECT autoin, KWHGEN INTO VAL_ID_MED, VAL_KWHGEN FROM
(SELECT *
FROM T_measures_TP_NEW WHERE ID_site = :NEW.ID_site
ORDER BY TIMESTAMP DESC)
WHERE ROWNUM = 1;
IF :NEW.KWHGEN <0
THEN UPDATE T_MEASURES_TP_NEW SET KWHGEN = VAL_KWHGEN WHERE autoin = VAL_autoin;
END IF;
END AFTER EACH ROW;
END D_MEASURES_TP_test;
しかし、突然変異エラーが私に続いています;-)