oracle触发器中:old与:new用法

小叶胡 2013-06-04 01:33:38
今天看见一段代码如下:
CREATE OR REPLACE TRIGGER tr_emp_sal_comm
BEFORE UPDATE OF salary, commission_pct
OR DELETE
ON HR.employees
FOR EACH ROW
WHEN (old.department_id = 80)
BEGIN
CASE
WHEN UPDATING ('salary') THEN
IF :NEW.salary < :old.salary THEN

RAISE_APPLICATION_ERROR(-20001, '部门80的人员的工资不能降');
END IF;
WHEN UPDATING ('commission_pct') THEN

IF :NEW.commission_pct < :old.commission_pct THEN
RAISE_APPLICATION_ERROR(-20002, '部门80的人员的奖金不能降');
END IF;
WHEN DELETING THEN
RAISE_APPLICATION_ERROR(-20003, '不能删除部门80的人员记录');
END CASE;
END;

这段代码里面的这句话:WHEN (old.department_id = 80)为什么old不是写成:old,是不是when里面要省略这个符号?
...全文
645 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010412956 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 astdh5 的回复:
[quote=引用 1 楼 u010412956 的回复:] yes 语法就是这样的。
那还有那种情况要去掉冒号的?请帮忙总结一下[/quote] 工作中我基本没有用过触发器,了解的也不多。
小叶胡 2013-06-04
  • 打赏
  • 举报
回复
引用 1 楼 u010412956 的回复:
yes 语法就是这样的。
那还有那种情况要去掉冒号的?请帮忙总结一下
u010412956 2013-06-04
  • 打赏
  • 举报
回复
yes 语法就是这样的。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧