码迷,mamicode.com
首页 > 其他好文 > 详细

一个很好的触发器例子(case when)

时间:2015-04-17 15:31:55      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:

CREATE OR REPLACE TRIGGER TR_CGD1
BEFORE UPDATE OR INSERT OR DELETE ON BB_MJ_CGD1_TB
FOR EACH ROW
DECLARE

V_COUNT NUMBER;
BEGIN
CASE
WHEN UPDATING OR INSERTING THEN
IF :NEW.DJZT = ‘结束‘ THEN
:NEW.DJZT := ‘结束‘;
ELSE
SELECT COUNT(*)
INTO V_COUNT
FROM BB_MJ_KCRKD2_TB RKD2
WHERE CGD2ID IN
(SELECT ID FROM BB_MJ_CGD2_TB WHERE CGD1ID = :NEW.ID);
END IF;
WHEN DELETING THEN
SELECT COUNT(*)
INTO V_COUNT
FROM BB_MJ_KCRKD2_TB RKD2
WHERE CGD2ID IN
(SELECT ID FROM BB_MJ_CGD2_TB WHERE CGD1ID = :OLD.ID);
END CASE;
IF V_COUNT > 0 THEN
RAISE_APPLICATION_ERROR(-20002, ‘订单已入库,不可修改‘);
END IF;
END;

一个很好的触发器例子(case when)

标签:

原文地址:http://www.cnblogs.com/nuaaydh/p/4434796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!