テーブルにAFTER TRIGGERを作成し、そのテーブルをSELECTクエリで使用しても、テーブルの変更に誤りはありませんか?トリガされたテーブルへの参照を使用してTRIGGERを作成する方法はありますか?
私が使用したいクエリの例。それは店なので、私もステップ出現回数をカウントするために必要とされるためにレコードを挿入してい
CREATE OR REPLACE TRIGGER COUNT_STEP
AFTER INSERT
ON STEPS
FOR EACH ROW
DECLARE
V_COUNT_SETP VARCHAR (10000);
BEGIN
SELECT COUNT (STATUS_NAME)
INTO V_COUNT_SETP
FROM (SELECT A.ALERT_ID, S.STATUS_NAME
FROM ALERTS A, ALERT_STATUSES S, STEPS ST
WHERE :NEW.ALERT_INTERNAL_ID = A.ALERT_INTERNAL_ID
AND ST.ALERT_STATUS_INTERNAL_ID = S.STATUS_INTERNAL_ID
AND S.STATUS_NAME IN ('Auto Escalate'))
GROUP BY ALERT_ID;
UPDATE ALERTS A
SET A.COUNT = V_COUNT_ESC
WHERE A.ALERT_INTERNAL_ID = :NEW.ALERT_INTERNAL_ID;
END;
/
テーブル: このクエリは、特定のステータスの名前は、アラートのライフサイクルに現れて回数を更新しますアラートIDとそれが持っていたすべてのステップID。
質問を投稿する前に、[ask]と[mcve]でlokを持ってください。あなたの質問を改善するために、トリガが何をすべきか、何を試したのか、問題があるかを明確に記述する小さなサンプルを作成しようとします。 – Aleksej
アラートテーブルからステップおよび/またはalert_statusesへの参加が不足しているようですテーブル。それは間違っているようだ。また、STEPS.ALERT_INTERNAL_ID列に固有の値が含まれていますか? – Boneist
@Boneist私は警告のための結合がと思った:NEW.ALERT_INTERNAL_ID = A.ALERT_INTERNAL_ID – nfrank