我有两个MySQL数据库:一个用于测试,另一个用于生产。他们在不同的服务器上。这些表格应该是相同的,但是一个表格比另一个表格多一行。我将如何找到这一行?查找应该相同的两个MySQL表中的差异
回答
你可以尝试:
-
在SQL文件
- 出口第二服务器表(用mysqldump)
- 编辑文件更改表名
- 导入SQL文件到第一台服务器
然后运行
SELECT t1.* FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.id
WHERE t2.id IS NULL
这实际上并不适用。仅仅因为一个表格比另一个表格多一行并不意味着它有所有的行加上一行。有可能我们可能有以下几点:第一个表有ABCDEF行,第二个表有ACDEFGH。如果行计数存在差异,则还应该怀疑行内容存在差异,因此具有相同ID的某些行可能在其他列中具有不同的数据。你需要使用像pt-table-sync这样的工具来获得好的结果。 –
一招我有时做了(你需要同时访问表):从服务器B一个
- 开放存取或类似
- 链接表在Access
- 计算差异
显然,你如果表是大要小心。
pt-table-sync --print h=server1,D=dbname,t=tablename h=server2
见http://www.percona.com/doc/percona-toolkit/2.0/pt-table-sync.html
这绝对是比其他海报推荐的任何类型的出口和比较更好的解决方案。 –
一种方法是每个表导出到一个SQL文件,并使用diff程序寻找差异。
漂亮的DIFF(网络) - http://prettydiff.com/
的WinMerge(WIN) - http://winmerge.org/
FileMerge(OS X) - http://en.wikipedia.org/wiki/Apple_Developer_Tools#FileMerge
WinDiff?不,使用WinMerge:http://winmerge.org/ –
更新到winmerge ..窗户是从内存中。 –
- 1. 查找两个表中的差异
- 2. 差异应该是相同
- 3. 查找MySQL中两个表的行数差异
- 4. SQL查询 - 查找同一个表中的两个值之间的差异
- 5. Mysql的查找差异
- 6. 查询比较两个不同表中两列的差异
- 7. 找到同一个表中两个字段之间的差异
- 8. 两个SQL查询中的差异,但结果相同
- 9. 比较mysql中两个相同表之间的行之间的差异
- 10. MySQL - 查找同一列中任意两个整数之间的差异
- 11. 的LINQ找到差异,两个列表
- 12. 查找两个单维数组的联合,相交和差异
- 13. 查找两个列表中的财产差异
- 14. 查找SQL中两个表之间的差异
- 15. 在PostgreSQL中查找两个大表之间的差异
- 16. 两个几乎相同的表之间的性能差异
- 17. HQL - 两个相同的查询 - 在对象类型差异
- 18. 从两个不同的表中查询相同的字段MYSQL
- 19. PHP PDO查询两个表的差异
- 20. 从两列中查找MySQL表的相同值
- 21. MySQL - 查找同一列中的字段之间的差异
- 22. 查找SQL Server的两个表之间的差异
- 23. Mysql - 计算两个不同表中的两列之间的差异并插入
- 24. 比较两个NSDictionaries并查找差异
- 25. SQL查找两个表之间的差异
- 26. 查找两个数据表之间的差异
- 27. 库函数查找两个列表之间的差异 - OCaml
- 28. MySQL查询 - 两行之间的差异
- 29. 查询查找同一表中的差异
- 30. 确定同一个MySQL表中两个值的时间戳的差异
他们是在同一台服务器上? –
这两个数据库位于不同的机器上。 – David542
那么,你有什么尝试? –