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

MySQL ajouter une colonne si elle n'existe pas

Si votre hébergeur ne vous donne pas la permission de créer ou d'exécuter des procédures, je pense avoir trouvé un autre moyen de le faire en utilisant PREPARE/EXECUTE et en interrogeant le schéma :

SET @s = (SELECT IF(
    (SELECT COUNT(*)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE table_name = 'table_name'
        AND table_schema = DATABASE()
        AND column_name = 'col_name'
    ) > 0,
    "SELECT 1",
    "ALTER TABLE table_name ADD col_name VARCHAR(100)"
));

PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;