Чтобы автоматизировать процесс резервного копирования одной из моих баз данных MySQL, я хотел бы сравнить структуру двух таблиц (текущая версия и старая версия).
Можете ли вы вспомнить запрос, который может сравнить две таблицы?
Вот несколько примеров таблиц, которые вы можете сравнить.
CREATE TABLE product_today
(
pname VARCHAR(150),
price int,
PRIMARY KEY (pname)
);
CREATE TABLE product_yesterday
(
pname VARCHAR(150),
price int,
PRIMARY KEY (pname)
);
CREATE TABLE product_2days_back
(
pname VARCHAR(15),
price int,
PRIMARY KEY (pname)
);
Первые две таблицы имеют одинаковую структуру. Последний отличается. Мне просто нужно знать, имеют ли две таблицы разную структуру или нет. Меня не интересует, чем они отличаются.
Ответы:
ДВЕ ТАБЛИЦЫ В ТЕКУЩЕЙ БАЗЕ ДАННЫХ
Если вы хотите узнать, отличаются ли две таблицы, запустите
Если вам действительно нужно увидеть различия, запустите
ДВЕ ТАБЛИЦЫ В КОНКРЕТНОЙ БАЗЕ ДАННЫХ
Если вы хотите узнать, отличаются ли две таблицы в базе данных
mydb
, запуститеЕсли вам действительно нужно увидеть различия, запустите
ДВЕ ТАБЛИЦЫ В ДВУХ РАЗНЫХ БАЗАХ ДАННЫХ
Если вы хотите знать, если
db1.tb1
иdb2.tb2
отличаются, запустите этотЕсли вам действительно нужно увидеть различия, запустите
ДАЙТЕ ЭТО ПОПРОБУЙТЕ !!!
источник
Вы можете сравнить контрольную сумму вывода SHOW CREATE TABLE product_today
источник
Расширение на ответ RolandoMySQLDBA:
Чтобы увидеть имя таблицы, сделайте запрос:
источник
Взгляните на таблицу столбцов в information_schema - поле column_type. Это позволит вам сравнивать структуры таблиц.
источник
Мой лучший способ сравнения 2 баз данных (DB1, DB2) - только таблицы / представления, ограничения и внешний ключ не включены. В моем случае я всегда использую следующий SQL для сравнения PRODUCTION с UAT или UAT с DEV.
БД DIFF (сравнить таблицы / представления)
источник
для всех изменений в структуре таблиц двух баз данных:
Ссылка: от RolandoMySQLDBA и
источник