mysql 触发器实现两个表的数据同步
程序员文章站
2023-12-20 22:10:58
mysql通过触发器实现两个表的同步 目前,在本地测试成功。 假设本地的两个数据库a和b,a下有表table1(id, val) b下有表table2(id, val) 假...
mysql通过触发器实现两个表的同步
目前,在本地测试成功。
假设本地的两个数据库a和b,a下有表table1(id, val) b下有表table2(id, val)
假设希望当table1中数据更新,table2中数据同步更新。
代码:
delimiter $$
create
/*[definer = { user | current_user }]*/
trigger `a`.`触发器名` before update
on `a`.`table1`
for each row begin
if new.id!=old.id then
update `b`.`table2` set `b`.`table2`.id=new.id where `b`.`table2`.val=old.val;
end if;
end$$
delimiter ;
网上找了很多代码,在phpadmin中运行都不成功,总是语法错误,phpmyadmin也不能可视化建立触发器,所以找了另一个mysql管理工具,sqlyog。这个工具比较好,java写的,可以通过界面创建触发器,然后再把代码拷到phpmyadmin中运行,成功!
目前,在本地测试成功。
假设本地的两个数据库a和b,a下有表table1(id, val) b下有表table2(id, val)
假设希望当table1中数据更新,table2中数据同步更新。
代码:
delimiter $$
create
/*[definer = { user | current_user }]*/
trigger `a`.`触发器名` before update
on `a`.`table1`
for each row begin
if new.id!=old.id then
update `b`.`table2` set `b`.`table2`.id=new.id where `b`.`table2`.val=old.val;
end if;
end$$
delimiter ;
网上找了很多代码,在phpadmin中运行都不成功,总是语法错误,phpmyadmin也不能可视化建立触发器,所以找了另一个mysql管理工具,sqlyog。这个工具比较好,java写的,可以通过界面创建触发器,然后再把代码拷到phpmyadmin中运行,成功!