Сравнить 2 базы данных - PullRequest
2 голосов
/ 16 мая 2010

У меня есть 2 идентичные базы данных. abc15 и abc18. Но у одной базы данных есть еще одна таблица, и мне нужно ее найти. Я думал, что следующий запрос должен вернуть его, но разве он не показывает ожидаемую запись.

select * from information_schema.tables as a
    left join information_schema.tables as b
        on a.TABLE_SCHEMA=b.TABLE_SCHEMA AND a.TABLE_NAME=b.TABLE_NAME
    where a.TABLE_SCHEMA = 'abc15' AND b.TABLE_SCHEMA='abc18' and
        b.TABLE_NAME IS NULL

Ответы [ 2 ]

3 голосов
/ 16 мая 2010

Что если в базе данных b есть дополнительная таблица? Попробуйте полное внешнее соединение и дополнительное ограничение в конце (ИЛИ. TABLE_NAME IS NULL)

1 голос
/ 16 мая 2010
$ mysqldumpslow --database abc15 >/tmp/a
$ mysqldumpslow --database abc18 >/tmp/b
$ diff /tmp/a /tmp/b
...