Sql 在oracle中创建使用其他表中数据的触发器
我试图在一个名为race的表中创建一个触发器,该表强制执行一个约束,即“STARTDATE。您的触发器中有很多错误Sql 在oracle中创建使用其他表中数据的触发器,sql,oracle,plsql,triggers,Sql,Oracle,Plsql,Triggers,我试图在一个名为race的表中创建一个触发器,该表强制执行一个约束,即“STARTDATE。您的触发器中有很多错误 您不必声明STARTDATE变量,应该使用:new.STARTDATE (:new.RACEID)错误时的表达式 您必须先声明变量,然后再选择该变量 您的触发器不应插入比赛。如果开始日期不正确,您可能会引发错误 触发器可能如下所示: CREATE OR REPLACE TRIGGER race_date_trg BEFORE INSERT OR UPDATE ON RA
CREATE OR REPLACE TRIGGER race_date_trg
BEFORE INSERT OR UPDATE
ON RACE
FOR EACH ROW
DECLARE
MEETING_ENDDATE DATE;
BEGIN
SELECT ENDDATE INTO MEETING_ENDDATE FROM meeting;
IF :NEW.STARTDATE > MEETING_ENDDATE THEN
RAISE_APPLICATION_ERROR(-20000, 'Wrong start date!');
END IF:
end race_date_trg;
您的代码中有几个语法错误。可能会有所帮助。
CREATE OR REPLACE TRIGGER race_date_trg
BEFORE INSERT OR UPDATE
ON RACE
FOR EACH ROW
DECLARE
MEETING_ENDDATE DATE;
BEGIN
SELECT ENDDATE INTO MEETING_ENDDATE FROM meeting;
IF :NEW.STARTDATE > MEETING_ENDDATE THEN
RAISE_APPLICATION_ERROR(-20000, 'Wrong start date!');
END IF:
end race_date_trg;