SQL orcl10g触发器插入(birthDate after birthDate)

use*_*487 0 sql oracle triggers oracle10g

触发器需要在输入生日之前停止死亡日期.

CREATE TRIGGER Check_deathDate
BEFORE INSERT Or UPDATE of deathDate on Actor
FOR EACH ROW
DECLARE
deathDate           DATE;
birthDate           DATE;
deathDate_Error     EXCEPTION;
IF (deathDate < birthDate) THEN
RAISE deathDate_Error;
END IF;
EXCEPTION 
WHEN deathDate_Error THEN
Raise_application_error( 'deathDate' || 'should be before' || 'birthDate');
END;);
Run Code Online (Sandbox Code Playgroud)

给出错误......

*第3行的错误:ORA-04079:触发器规范无效

...我怎么能指定IF?

Jon*_*ler 5

您可能希望使用检查约束而不是触发器.约束不如触发器强大,但它们通常更简单,更快速.

alter table actor add
constraint actor_birth_before_death check (birthDate <= deathDate);
Run Code Online (Sandbox Code Playgroud)