mysql 觸發器(數據庫的同步)

1)準備mysql

分別建立數據庫test1 test2  以及user_tb 表並初始化一些測試數據sql

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 有告終構相同的兩張表ui

2.1  向test1 插入數據時,同步到test2spa

-- --新建插入觸發器 insert_tg同步

use test1;table

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 ;test

2.2 更新test1 的user_tb 時,同步更新test2 user_tb date

-- -新建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 ;

相關文章
相關標籤/搜索