AH
CREATE OR REPLACE TRIGGER CHECK_COUNT_SONG_CORRECTION
BEFORE INSERT
ON SONG
FOR EACH ROW
DECLARE
AMOUNT_EXCPETION EXCEPTION;
PRAGMA EXCEPTION_INIT (AMOUNT_EXCPETION, -20001);
SONGS_COUNT_IN_ALBUM NUMBER (2);
ALBUM_TOTAL_SONGS_AMOUNT NUMBER (2);
BEGIN
SELECT COUNT(*)
INTO SONGS_COUNT_IN_ALBUM
FROM SONG WHERE ALBUM_ID=:NEW.ALBUM_ID;
SELECT AMOUNT
INTO ALBUM_TOTAL_SONGS_AMOUNT
FROM ALBUM WHERE ID=:NEW.ALBUM_ID;
IF(SONGS_COUNT_IN_ALBUM + 1) > ALBUM_TOTAL_SONGS_AMOUNT
THEN
RAISE AMOUNT_EXCPETION;
END IF;
EXCEPTION
WHEN AMOUNT_EXCPETION
THEN
raise_application_error (-20001, 'error, count songs is more than total amount in album table');
END;
есть такой триггер у меня и мне сказали что в нем есть проблема - мутирование таблиц. Можете подсказать как это исправить, или в каком направлении мне искать решение и так далее. Надеюсь на вашу помощь