sql >> Databasteknik >  >> RDS >> Mysql

bulk ändra kolumntyper i MySQL

Lösning utan lagrade procedurer (med endast phpMyAdmin eller något annat DBA-verktyg).

Kör följande fråga

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';

Denna fråga kommer att returnera alla påståenden till avfyrning. Du kan köra dem eller spara i ett SQL Upgrade-skript

Exempel (från tinyint till bit):

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


  1. Infoga euro- och dollarsymboler i en kolumn i mysql

  2. Långt heltal omvandlas när det infogas i en kortare kolumn, inte trunkerat. Varför? Vad är formeln?

  3. Exportera enorm databas från Amazon RDS till lokal mysql

  4. Dataanalysguide:Det är dags att utmärka sig genom att använda Excel!