sql >> Databáze >  >> RDS >> Mysql

hromadné změny typů sloupců v MySQL

Řešení bez uložených procedur (pouze pomocí phpMyAdmin nebo jiného nástroje DBA).

Spusťte následující dotaz

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

Tento dotaz vám vrátí všechny příkazy ke spuštění. Můžete je spustit nebo uložit do skriptu aktualizace SQL

Příklad (od tinyint po bit):

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


  1. Vrátit číslo z příkazu Oracle Select po datu analýzy

  2. Mysql součet záznamů podle měsíce za posledních 12 měsíců

  3. sudo gem install pg nebude fungovat

  4. Místnost pro Android – Jak vymazat sqlite_sequence pro všechny tabulky