Pour automatiser le processus de sauvegarde d'une de mes bases de données MySQL, je voudrais comparer la structure de deux tables (version actuelle vs ancienne version).
Pouvez-vous penser à une requête qui peut comparer deux tableaux?
Voici quelques exemples de tableaux que vous pouvez comparer.
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)
);
Les deux premiers tableaux ont des structures identiques. Le dernier est différent. J'ai juste besoin de savoir si deux tables ont des structures différentes ou non. Je ne suis pas intéressé par la façon dont ils diffèrent.
Réponses:
DEUX TABLEAUX DANS LA BASE DE DONNÉES ACTUELLE
Si vous voulez savoir si deux tables sont différentes, exécutez cette
Si vous avez réellement besoin de voir les différences, exécutez cette
DEUX TABLEAUX DANS UNE BASE DE DONNÉES SPÉCIFIQUE
Si vous voulez savoir si deux tables sont différentes dans la base de données
mydb
, exécutez cetteSi vous avez réellement besoin de voir les différences, exécutez cette
DEUX TABLEAUX DANS DEUX BASES DE DONNÉES DIFFÉRENTES
Si vous voulez savoir si
db1.tb1
etdb2.tb2
sont différents, exécutez ceciSi vous avez réellement besoin de voir les différences, exécutez cette
ESSAIE !!!
la source
Vous pouvez comparer la somme de contrôle de la sortie de SHOW CREATE TABLE product_today
la source
Extension de la réponse de RolandoMySQLDBA:
Pour voir également le nom de la table, interrogez ceci:
la source
Jetez un œil à la table des colonnes dans le champ information_schema - le champ column_type. Cela vous permettra de comparer les structures de table.
la source
Ma façon ultime de comparer 2 bases de données (DB1, DB2) - les tables / vues uniquement, les contraintes et la clé étrangère ne sont pas incluses. Dans mon cas, j'utilise toujours SQL suivant pour comparer la PRODUCTION avec UAT ou UAT avec DEV.
DB DIFF (comparer les tableaux / vues)
la source
pour tous les changements dans la structure des tables de deux bases de données:
Réf .: de RolandoMySQLDBA ans
la source