Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ajouter une nouvelle colonne dans toutes les tables mysql

Non, il n'y a vraiment aucun moyen d'ajouter un champ à plusieurs tables à la fois. Vous devrez écrire un script pour cela. Cependant, cela ne devrait pas être un script difficile à écrire :

Un simple SHOW TABLES requête vous donnera une liste de tables que vous pourrez ensuite parcourir en PHP.

Dans la boucle, un SHOW COLUMNS FROM tablename la requête vous donnera les champs de la table actuelle, que vous pouvez utiliser pour vérifier si elle a déjà le practiceId champ, puis ajoutez-le si nécessaire.

Pour ajouter le champ, utilisez ALTER TABLE tablename ADD COLUMN practiceId INT (J'ai supposé INT , mais remplacez par toutefois votre champ doit être défini si vous utilisez un type de données différent)

Pour ajouter un index sur la nouvelle colonne, vous pouvez également utiliser ALTER TABLE , ou utilisez CREATE INDEX . Pour créer une contrainte de clé étrangère, utilisez ALTER TABLE avec ADD FOREIGN KEY argument (Mais je crois que cela ne fonctionne qu'avec les tables InnoDB).

Référence :