我试图在更新后触发更新。来自update的特定变量的PL/SQL触发器
我的表:
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'));
下了扳机:
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;
/
什么基本上,我试图做的是递增WARNING_ID当透支更新为 'Y'(是)。 错误报告 -
ORA-04079: invalid trigger specification
04079. 00000 - "invalid trigger specification"
*Cause: The create TRIGGER statement is invalid.
*Action: Check the statement for correct syntax.
我做错了什么?
顺便说一句,你应该使用'VARCHAR2',而不是'VARCHAR'或'CHAR'。此外,你的大写锁定是打开;) –