Oracle触发器_trigger

1. 查询表上的触发器

select trigger_name from all_triggers where table_name='表名';
例如: select trigger_name from all_triggers where table_name='MDM_WLZSJ_CODE';

2. 批量禁用/启用触发器

/*禁用触发器*/SQL> alter trigger 触发器名称 disable;
/*启用触发器*/SQL> alter trigger 触发器名称 enable;
/*批量禁用触发器*/
select 'alter trigger '||''''||trigger_name||''' disable;' from all_triggers where table_name='MDM_WLZSJ_CODE';  
/*批量启用触发器*/
select 'alter trigger '||''''||trigger_name||''' enable;' from all_triggers where table_name='MDM_WLZSJ_CODE';  

3. 创建触发器

/*2.1行转列,行更新时,列也更新*/

--INSERT OR 不用加,以提高效率
CREATE OR REPLACE TRIGGER TRG_MDM_SBZSJ_CODE0514 after UPDATE ON MDM_SBZSJ_CODE
  FOR EACH ROW
BEGIN

    -- 设备状态编号 DESC37,A027
    if :NEW.DESC37<>:OLD.DESC37 or (:NEW.DESC37 is null and :OLD.DESC37 is not null) or (:OLD.DESC37 is null and :NEW.DESC37 is not null)THEN
       update MDM_SBZSJ_CODEVALUE v set v.PROPERTYVALUE=:NEW.DESC37
       where 1=1
       and v.CODEID=:NEW.CODEID
       AND v.PROPERTYCODE='A027';
    END IF;
    -- 设备状态 DESC9,A009
    if :NEW.DESC9<>:OLD.DESC9 or (:NEW.DESC9 is null and :OLD.DESC9 is not null) or (:OLD.DESC9 is null and :NEW.DESC9 is not null) THEN
       update MDM_SBZSJ_CODEVALUE v set v.PROPERTYVALUE=:NEW.DESC9
       where 1=1
       and v.CODEID=:NEW.CODEID
       AND v.PROPERTYCODE='A009';
    END IF;

END TRG_MDM_SBZSJ_CODE0514;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司家成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值