请问mysql中,如何实现一个数据库内,两张表的实时同步互相更新。

请问mysql中,如何实现一个数据库内,两张表的实时同步互相更新。,第1张

通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。

如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。

我好像昨天回答过,你不相信可以上机测试:

UPDATE 表1 SET address=(SELECT 表2.address from 表2 WHERE 表2.name=表1.name)

上面的语句非常简单,很容易明白,语句工作时,扫描表1的所有记录,对于每一条记录,按照name去查找表2的address并替换本表此字段。

假设你要更新 ID =1,如果用MYSQL是可以实现的(目前只有MYSQL支持这样的语法)。参考下面的语法。

UPDATE employee t1,info t2

SET t1.name='abc', t1.password='123', t2.tell='123456', t2.address='zxy'

WHERE t1.ID=t2.ID and t1.ID = 1

但是按照SQL标准,在其它数据库里SQL 语句不支持 用UPDATE来同时更新两张表。你这么做可移植性不好。而且和拆成两条来比较也没优势的地方。

用其它数据库你必须拆成两条UPDATE,假设你要更新 ID =1的 一个人的两部分信息那么可以参考下面的方法。

UPDATE employee SET name='abc', password='123', WHERE ID = 1

UPDATE info SET tell='123456', address='zxy' WHERE ID = (select ID from employee where ID=1)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6127520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存