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 //删除触发器
尽可能的一张表只建立一个触发器**