方案一:使用触发器同步
优点: 工作效率和开发效率上有很大的提高
缺点: 增加数据库服务器的开销
具体需求
sakila数据库中的user_test表数据,同步到test库的user_test表,以及world库的user_test表
具体实现
使用三个不同数据库做测试:
1、sakila库中的user_test表
2、test库中的user_test表
3、world库中的user_test表
一、使用sql命令创建触发器
1:在数据库sakila中创建insert触发器
use sakila;
mysql> delimiter $$
mysql> create trigger insert_trigger after insert on user_test for each row
-> BEGIN
-> insert into test.user_test(id,username_test) VALUES (new.id,new.username_test);
-> insert into world.user_test(id,username_test) VALUES (new.id,new.username_test);
-> end $$
2:在数据库sakila中创建update触发器
use sakila;
mysql> delimiter $$
mysql> create trigger update_trigger after update on user_test for each row
-> begin
-> update test.user_test set username_test = new.username_test where id = new.id;
-> update world.user_test set username_test = new.username_test where id = new.id;
-> end $$
二、使用navicat创建触发器(推荐,可视化创建,方便不容易出错)
insert_trigger
BEGIN
insert into test.user_test(id, username_test) VALUES (new.id, new.username_test);
insert into world.user_test(id, username_test) VALUES (new.id,new.username_test);
END
update_trigger
begin
update test.user_test set username_test = new.username_test where id = new.id;
update world.user_test set username_test = new.username_test where id = new.id;
end