【发布时间】:2019-09-16 11:07:13
【问题描述】:
我是 SQL 的新手,我正在尝试为我的练习设置 TRIGGER。我似乎找不到解决方案。代码如下:
CREATE TRIGGER C3
BEFORE UPDATE OF rate ON Magazines
FOR EACH ROW
WHEN(:NEW.rate < :OLD.rate*0.75)
BEGIN
IF :NEW.rate < 0 THEN
:NEW.rate = 0;
RAISE_APPLICATION_ERROR(-20003, 'Rate should never be below 0.');
ELSE
:NEW.rate = :OLD.rate*0.75;
END;
/
当我尝试编译时,它显示了这个错误:
Non valid use of bind variable in WHEN of a trigger
我试图在NEW 和OLD 之前删除:,但它却给了我另一个编译器错误。
有什么想法吗? 非常感谢!
【问题讨论】:
-
添加缺少的
END IF;会发生什么情况? -
与没有 END IF 的错误相同; :(
标签: sql oracle triggers sqlplus