mysql 触发器实现两个表的数据同步_Mysql

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中运行,成功!

时间: 2024-12-23 09:22:52

mysql 触发器实现两个表的数据同步_Mysql的相关文章

mysql中比较两个表中的数据sql语句

有两个表t_appinfo 和g_appinfo ,存储的信息基本一致,都包含package_name这个字段,现在需要查出package_name 存在于t_appinfo表,而且不存在于g_appinfo表的记录. 方法一:使用NOT EXISTS  代码如下 复制代码 SELECT a.name,a.package_name FROM t_appinfo a WHERE NOT EXISTS (SELECT 1 FROM g_appinfo g WHERE a.package_name=g

查询问题 急急急-查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空

问题描述 查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空 如上图,第一个表的字段包含 内码.编号.客户.日期,第二个表包含出库单等字段,现在查询出来的数据,只要内码相同,则对应的内码.编号.客户.日期都显示为空,该如何写SQL语句,原SQL语句如下 select t1.内码,t1.编号,t1.客户,t1.日期,t2.出库单 from SEOrder t1 join icstockbill t2 on t1.FInterID=t2.FInterID 解决方案 dani

mysql同时对2张表进行数据访问问题

问题描述 mysql同时对2张表进行数据访问问题 我现在需要在一个定时器里面同时对mysql两张表进行数据访问,但是每次都是1张表有反应,另一张没反应或者两者会起冲突,尝试过线程方法,联合访问方法,依然没解决,求有效的解决办法 解决方案 是在mysql的定时器中进行访问吗?可以将访问逻辑放到存储过程里,然后定时器调用就可以. 不知道题主是采取怎样的访问方式而报错呢?

sql使用触发器当一张表插入数据就往另一张表插入数据

问题描述 sql使用触发器当一张表插入数据就往另一张表插入数据 日期格式是这样的但是使用触发器当上图插入了一条数据就往下图插入相同的数据,如下图为什么日期格式不一样呢? 解决方案 SQL(二) 将一张表数据插入另外一张表从表中插入数据到另外一张表oracle 将一张表的数据插入到另一张表 解决方案二: 日期格式的问题,先确保两张表对应列的数字类型一致,插入使用convert格式化一下:CONVERT(varchar(10), GETDATE(), 111).

怎么样写一个事件来完成同时对两个表的数据的更改呢!

问题描述 我是VB新手,各位怎么样写一个事件来完成同时对两个表的数据的更改呢! 解决方案 解决方案二:不晓得你是什么意思,计算机中没有同时的概念解决方案三:如果不会问问题,那么就描述你的具体问题,甚至是项目要求.解决方案四:应该是指两个表的数据需要同步更新吧.你可以通过对事务的管理,在一个事件做分别对两个表进行更新就可以了(分两条SQL更新语句):或是做个存储过程,调用存储过程:或是在其中一个表中做个触发器也行.解决方案五:OnErrorResumeNextErr.Clear()Conn.Beg

asp.net用gridview显示数据库中两个表的数据?

问题描述 asp.net用gridview显示数据库中两个表的数据? asp.net用gridview显示数据库中两个表的数据?把两表绑定在datatable并用gridview显示数据 解决方案 两个表什么关系?如果是一样的表结构,用union连接,如果是主系表关系,那么可以用join.具体按照我说的google下. 解决方案二: 不管是查询几个表,最后通过sql语句走ado.net,查询出来的数据都放入DataTable或DataSet中,然后绑定到gridview 解决方案三: 如果是一起

信息-mysql中有关两张表关联的查询语句

问题描述 mysql中有关两张表关联的查询语句 宝宝信息表中存的是已经接种过疫苗的信息,is_vaccined为1,另外一张表中,存的是所有疫苗的详细信息.现在,我想通过获取宝宝id来查询该宝宝所有的疫苗的状态(包括已经接种的和未接种的),改怎么写查询语句?? 解决方案 select t1.*, t2.* from t_baby_info t1 left outer join t_vaccine t2 on t1.vaccine_id= t2.vaccine_id 解决方案二: @caozhy

listview-将两张表的数据展示在一个ListView中

问题描述 将两张表的数据展示在一个ListView中 数据库中的数据如图所示,一共有5张表,三个数据表以及两个关系表.我现在需要将所有的project和exam读取出来然后将其中的name和description显示在同一个ListView中,根据数据表中的session sort no来排序. 现在的问题: 1.如何同时读取所有的exam和project数据并根据session sort no来排序呢?因为数据比较多,所以应该不会一次性完成读取,而是用类似SimpleCursorAdapter

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book