I'm trying to trigger an update after an update.
My Tables:
CREATE TABLE STUDENT (
STUDENT_ID INTEGER PRIMARY KEY,
NAME CHAR(40) NOT NULL,
SURNAME CHAR(40) NOT NULL,
TOKEN CHAR(5) NOT NULL,
STUDYCOURSE CHAR(20) NOT NULL,
NOTE VARCHAR(255) NULL,
WARNING_ID INTEGER REFERENCES MAHNUNG (ID),
BLOCKED CHAR(1) CHECK (Gesperrt IN('J', 'N'));
create table RENTAL (
RENTAL_ID INTEGER PRIMARY KEY,
RENTALDATE DATE DEFAULT SYSDATE,
RENTALDURATION INTEGER NOT NULL,
OVERDRAWN CHAR(1) CHECK (OVERDRAWN IN('Y', 'N'));
My Trigger:
CREATE OR REPLACE TRIGGER OVERDRAWN_RETURN
AFTER UPDATE OF OVERDRAWN ON RENTAL
REFERENCING OLD AS OLD AND NEW AS NEW
BEGIN
IF :NEW.OVERDRAWN := 'Y' THEN
UPDATE STUDENT SET WARNING_ID = WARNING_ID+1
WHERE STUDENT.STUDENT_ID = RENTAL.STUDENT_ID;
END IF;
END OVERDRAWN_RETURN;
/
What I'm basically trying to do is increment the WARNING_ID when OVERDRAWN is updated to 'Y' (yes). Error report -
ORA-04079: invalid trigger specification
04079. 00000 - "invalid trigger specification"
*Cause: The create TRIGGER statement is invalid.
*Action: Check the statement for correct syntax.
What did I do wrong?
VARCHAR2, notVARCHARorCHAR. Also, your caps lock is on ;)