Payment
新しいレコードがテーブルに挿入されたときに (請求用に) テーブルを更新するトリガーを作成しましたEnrollment
。私のトリガーは次のとおりです。
CREATE OR REPLACE TRIGGER EnrollFee_trig
AFTER INSERT ON Enrollment
FOR EACH ROW
DECLARE
amount Payment.TotalPrice%TYPE;
id Payment.LearnerID%TYPE;
BEGIN
SELECT SUM(Price) into amount
FROM LearnerEnrollCourse_View
WHERE LearnerID = :NEW.LearnerID
AND Paid = 'N';
SELECT LearnerID into id
FROM Payment
WHERE LearnerID = :NEW.LearnerID
AND PaymentDate IS NULL;
IF SQL%FOUND THEN
UPDATE Payment
SET TotalPrice = amount
WHERE LearnerID = :new.LearnerID
AND PaymentDate IS NULL;
ELSE
INSERT INTO Payment VALUES
(PaymentID_Seq.nextval, :new.LearnerID, '', amount);
END IF;
END;
/
トリガーは正常に作成できます。しかし、新しいレコードをEnrollment
テーブルに挿入すると、「テーブルENROLLMENT
が変更されています。トリガー/関数がそれを認識しない可能性があります」というエラーが発生します。これを引き起こしている問題と、それを解決する方法をより具体的に知りたいです。