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?
您可能希望使用检查约束而不是触发器.约束不如触发器强大,但它们通常更简单,更快速.
alter table actor add
constraint actor_birth_before_death check (birthDate <= deathDate);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |