周郑

Oracle触发器之某表数据发生变化自动更新其他表内容

发布时间:3年前浏览量: 1825 ℃评论数:暂未开放

思考:Oracle某表数据发生变化自动更新其他表内容

--创建触发器处理s

CREATE OR REPLACE TRIGGER FRIST_TRIGGER  --触发器名称FRIST_TRIGGER

AFTER DELETE or INSERT or UPDATE                  --时间after   触发的事件DELETE   即:进行删除后触发

on  tablea                                               --监控tablea表   即:这个触发事件用于tablea表上

BEGIN

    if DELETING then


                                                        DELETE from bd_defdoc where pk_defdoclist='1001A810000000005ALG';   --1001A810000000005ALG为建的自定义档案(薪资方案)的主键

                                                        insert into BD_DEFDOC select * from WA_XZFA;


    elsif INSERTING then


                                                        DELETE from bd_defdoc where pk_defdoclist='1001A810000000005ALG';

                                                        insert into BD_DEFDOC select * from WA_XZFA;


   elsif UPDATING then


                                                        DELETE from bd_defdoc where pk_defdoclist='1001A810000000005ALG';

                                                        insert into BD_DEFDOC select * from WA_XZFA;


    end if; END;



--创建触发器处理e


备注:

--ORACLE查出表所有的触发器及触发器详细信息

--1、查all_triggers表得到trigger_name

select trigger_name from all_triggers where table_name='HI_PSNDOC_BAD'; 

        --查询用户所有触发器

select * from user_triggers;

--2、根据trigger_name查询出触发器详细信息

select text from all_source where type='TRIGGER' AND name='FRIST_PANBAD';

--3、禁用触发器

alter trigger tri_uname(触发器名字) disable;

--禁用某个表上的触发器

alter table table_name(表名)  diable all triggers;

--4、激活触发器

alter trigger tri_uname(触发器名字) enable;

--5、删除触发器

DROP TRIGGER FRIST_PANBAD;

 


注意事项:触发器与表的更新顺序逻辑:表某一行更新->执行触发器,表的下一行更新->执行触发器。


触发器

微信扫码打赏

打赏排行榜

| 施主 | 时间 | 方式 | 金额 |

曾 俊 2020-02-16 微信打赏 ¥10.00

王 强 2020-01-24 微信打赏 ¥5.00

莫国成 2019-07-20 微信打赏 ¥ 50.00

说明:打赏记录每日24:00:00更新,50%用于无名公益!

1 2 3

手机扫码访问