MySQL,我想基于Join结果插入,更新或删除

时间:2013-05-14 21:24:12

标签: mysql

我需要调和两个系统。一个在大型机上(MASTER),一个在Windows服务器上(SLAVE)。这将每天进行。

我的想法是下载大型机系统的摘录,构建数据库表,将此表与服务器表连接,然后发出INSERTUPDATEDELETE语句在差异上。

这是一张报名表。学生可以报名/放弃课程;获得成绩;让教授改变成绩。

示例:MASTER系统说孩子有以下内容:

MATH B-
BIOLOGY C+

并且SLAVE系统说:

MATH A
ECONOMICS C

是否有一个查询会加入两个表并在BIOLOGY上发出INSERT,在MATH的成绩上发出UPDATE,在经济学上发出DELETE

我知道如何使用一个程序来消化JOIN的结果,但我想知道MySQL是否可以更简单地做到这一点。

1 个答案:

答案 0 :(得分:0)

跨服务器使用SQL不适合你。

如果你有一个大型数据库,请查看MySQL的复制功能。

如果您有一个小型数据库(300MB或更少),只需编写一个shell脚本:

  • 在主人身上每日做一次mysqldump(没有gzip压缩
  • 然后rsync将它转移到奴隶(这将gzip it
  • 如果rsync配置正确并覆盖昨天的* .sql文件,则只需要几百KB的网络流量来保持两个300MB的sql文件同步
  • 最后将sql文件导入到slave