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

modification en masse des types de colonnes dans MySQL

Solution sans procédures stockées (utilisant uniquement phpMyAdmin ou tout autre outil DBA).

Exécutez la requête suivante

SELECT 
    CONCAT('ALTER TABLE ',
            TABLE_NAME,
            ' CHANGE COLUMN ',
            COLUMN_NAME,
            ' ',
            column_name,
            ' TARGET_TYPE ',
            CASE
                WHEN IS_NULLABLE = 'NO' THEN ' NOT '
                ELSE ''
            END,
            ' NULL;') AS que
FROM
    information_schema.columns
WHERE
    table_schema = 'MY DB'
        AND data_type = 'SOURCE_TYPE';

Cette requête vous renverra toutes les instructions à déclencher. Vous pouvez les exécuter ou les enregistrer dans un script de mise à niveau SQL

Exemple (de tinyint à bit) :

ALTER TABLE mytable CHANGE COLUMN redacted redacted BIT  NULL;
ALTER TABLE mytable CHANGE COLUMN redacted2 redacted2 BIT NOT NULL;