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 :