Найти разницу в двух таблицах MySQL, которые должны быть идентичными - PullRequest
0 голосов
/ 24 января 2012

У меня есть две базы данных MySQL: одна для тестирования и одна для производства.Они находятся на разных серверах.Эти таблицы должны быть идентичными, однако одна таблица имеет на одну строку больше, чем другая.Как мне найти этот ряд?

Ответы [ 5 ]

2 голосов
/ 24 января 2012

Одним из способов является экспорт каждой таблицы в файл sql и использование программы сравнения, чтобы найти различия.

Pretty Diff (web) - http://prettydiff.com/

WinMerge (победа) - http://winmerge.org/

FileMerge (OS X) - http://en.wikipedia.org/wiki/Apple_Developer_Tools#FileMerge

2 голосов
/ 24 января 2012
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

2 голосов
/ 24 января 2012

Вы можете попробовать:

  1. Экспорт таблицы второго сервера в файл SQL (с использованием MySqlDump)
  2. Редактировать файл, меняя имя таблицы
  3. Импорт файла SQL на первый сервер

Затем запустите

SELECT t1.* FROM table1 t1
LEFT JOIN table2 t2
  ON t1.id = t2.id
WHERE t2.id IS NULL
0 голосов
/ 24 января 2012

Я иногда делал трюк (вам нужен доступ к обеим таблицам):

  1. Открытый доступ или аналогичный
  2. Таблица ссылок с сервера A
  3. Таблица ссылокс сервера B
  4. Рассчитать разницу в Access

Очевидно, что вы должны быть осторожны, если таблицы большие.

0 голосов
/ 24 января 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...