Сравнить 2 базы данных
У меня есть 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 ответа
Решение
$ mysqldumpslow --database abc15 >/tmp/a
$ mysqldumpslow --database abc18 >/tmp/b
$ diff /tmp/a /tmp/b
Что если в базе данных b есть дополнительная таблица? Попробуйте полное внешнее соединение и дополнительное ограничение в конце (ИЛИ.TABLE_NAME IS NULL)