0
我正在爲班級開發一個項目,在這個項目中,我們必須設置一個觸發器,以防止學生在有5個或更多缺席時註冊預約輔導。它編譯時沒有錯誤,但當我插入違反約束條件的記錄時,我無法啓動它。如果任何人都能指出我出錯的地方或者指向正確的方向,我將不勝感激,因此我一直在頭撞牆。Oracle 10g觸發器編譯但不會觸發
CREATE OR REPLACE TRIGGER absence_violation
BEFORE INSERT ON appointment FOR EACH ROW
DECLARE
absences NUMBER(1);
BEGIN
SELECT COUNT(app_attendance)
INTO absences
FROM appointment
WHERE app_attendance = 'N'
AND stu_id = :new.stu_id;
IF absences >= 5 THEN
dbms_output.put_line('ERROR 223, Student Exceeds Absence Violations');
END IF;
END;
它可能會觸發,但它沒有任何可見的效果,因爲它所做的只是向dbms_output發送消息,該消息可能在會話中被禁用。這裏的問題雖然是你的觸發器查詢同一個表,這是行不通的。 –