Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 区分和同步2个表MySQL_Python_Mysql_Google App Engine_Diff - Fatal编程技术网

Python 区分和同步2个表MySQL

Python 区分和同步2个表MySQL,python,mysql,google-app-engine,diff,Python,Mysql,Google App Engine,Diff,我有两个表,一个有新数据,另一个有旧数据 我需要找到两个表之间的diff,只将更改与生产中的旧数据一起推送到表中 这两个表在列方面是相同的,只是数据不同 编辑: 我正在寻找唯一的同步方式 编辑2 该表可能有外键 以下是限制条件 我无法使用shell实用程序,如mk table sync 我不能使用gui工具,因为它们不能像建议的那样自动化 这需要通过编程或在数据库中完成 我在Google App engine上使用的是python 目前我正在做类似的事情 OUTER JOINs和其中[NO

我有两个表,一个有新数据,另一个有旧数据

我需要找到两个表之间的
diff
,只将更改与生产中的旧数据一起推送到表中

这两个表在列方面是相同的,只是数据不同

编辑: 我正在寻找唯一的同步方式

编辑2 该表可能有外键

以下是限制条件

  • 我无法使用shell实用程序,如
    mk table sync
  • 我不能使用gui工具,因为它们不能像建议的那样自动化
  • 这需要通过编程或在数据库中完成
  • 我在Google App engine上使用的是
    python
目前我正在做类似的事情

  • OUTER JOIN
    s和
    其中[NOT]存在
    以比较
    SQL
    查询中的每条记录并推送结果
我的问题是

  • 有更好的方法吗
  • 在python中这样做比在db中更好吗

根据您对我的问题的评论,您可以简单地执行以下操作:

DELETE FROM OldTable;

INSERT INTO OldTable (field1, field2, ...) SELECT * FROM NewTable;

正如我在上面指出的,可能有不这样做的原因,例如数据大小。

假设您只需要单向同步:为什么不完全擦除旧表并填充新表中的所有数据?数据太多?是的,我只需要单向同步。正如我之前所说的,由于它将投入生产,我不能直接删除表并替换它,是的,它可能有数千行。这对于一个有数千条记录的生产数据库来说是个坏主意,尤其是考虑到它可能有外键。你对我问题的最初答复没有说明这一点。因此,我的解决方案是不可能的。