1)准备
分别创建数据库test1 test2 以及user_tb 表并初始化一些测试数据
create database test1;
create table test1.user_tb(
uuid varchar(32) primary key not null ,
name varchar(11) ,
password varchar(32)
);
create database test2;
create table test2.user_tb(
uuid varchar(32) primary key not null ,
name varchar(11) ,
password varchar(32)
);
2)现在test1 test2 有了结构相同的两张表
2.1 向test1 插入数据时,同步到test2
-- --新建插入触发器 insert_tg
use test1;
DELIMITER $
create trigger tr_insert
after insert on user_tb
for each row
begin
INSERT INTO test2.user_tb(uuid,name,password) VALUES(new.uuid,new.name,new.password);
end$
DELIMITER ;
2.2 更新test1 的user_tb 时,同步更新test2 user_tb
-- -新建update触发器 trigger
DELIMITER $
create trigger tr_update
after update on user_tb
for each row
begin
update test2.user_tb set name= new.name,password=new.password where uuid=new.uuid;
end$
DELIMITER ;
2.3 删除
-- 新建删除的触发器 tr_delete
DELIMITER $
create trigger tr_delete
after delete on user_tb
for each row
begin
delete from test2.user_tb where uuid=old.uuid;
end$
DELIMITER ;
2.4 删除触发器
drop trigger insert_tg$;
最后附上mysql 触发器的通用格式
DELIMITER $
create trigger trigger_name
after /before insert/update/delete on DB1.tableName
for each row #这句话在mysql是固定的
begin
sql 语句(可以使用IF ELSE END IF来控制逻辑)
end$
DELIMITER ;