触发器的增删改(oracle)

1.触发器的作用:当对数据库进行增删改时,达到数据的实时更新,这时可以 考虑写一个触发器,下面就是触发器的简单写法
2.相同服务器间触发器的使用;
有两个表,Demo,Demo1,以下为建表语句

create table DEMO
(
  name1 VARCHAR2(255),
  pwd1  VARCHAR2(255),
  id    VARCHAR2(255)
)
create table DEMO1
(
  name1 VARCHAR2(255),
  pwd1  VARCHAR2(255),
  id    VARCHAR2(12)
)

在demo表中增删改,实现在demo1中数据同步,这时需要在demo中添加触发器,以下为触发器代码

CREATE

    TRIGGER test1 before INSERT OR UPDATE OR DELETE 
    ON DEMO
 FOR EACH ROW BEGIN
   case
 when inserting then
   insert into DEMO1(NAME1,PWD1,ID) values(:new.name1,:new.pwd1,:new.id);
  when updating then
    update DEMO1 set name1=:new.name1,pwd1=:new.pwd1 where id=:new.id;
    when deleting then
    delete DEMO1 where name1 =:old.name1;
   end case;
END;

简单介绍:
CREATE TRIGGER //触发器名
BEFORE 或者AFTER // 触发事件 后面加(INSERT OR UPDATE OR DELETE )
ON //建立触发器表名
FOR EACH ROW
BEGIN sql语句 END
在demo中运行insert语句,在demo1中查询数据,会发现数据同步,这时发明触发器运行成功,
3.不同服务器触发器的使用,与同服务器触发器的使用大同小异,只是触发器的代码需要更改,以下为触发器代码

CREATE

    TRIGGER test1 before INSERT OR UPDATE OR DELETE 
    ON system.demo
 FOR EACH ROW BEGIN
   case
 when inserting then
   insert into system1.demo(NAME1,PWD1,ID) values(:new.name1,:new.pwd1,:new.id);
  when updating then
    update system1.demo set name1=:new.name1,pwd1=:new.pwd1 where id=:new.id;
    when deleting then
    delete system1.demo where name1 =:old.name1;
   end case;
END;

介绍:
ON//本地服务器名字.本地需要建立触发器的表名
以插入为例 insert into system1.demo(NAME1,PWD1,ID) ,system1.demo即:另一服务器名字.对应的表名;
对应以上本地服务器的操作,如发现在system.demo中运行增删改system1.demo中数据实时更新,则说明触发器建立成功

**附:DROP TRIGGER //删除触发器
尽可能的一张表只建立一个触发器**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值