Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Spalte hinzufügen, falls nicht vorhanden

Wenn Ihr Host Ihnen keine Berechtigung zum Erstellen oder Ausführen von Prozeduren gibt, habe ich, glaube ich, einen anderen Weg gefunden, dies zu tun, indem ich PREPARE/EXECUTE verwende und das Schema abfrage:

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;