sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Skift datatypen for en kolonne i hele databasen - MySQL

Hvis du ikke kan skrive et manuskript til at udføre jobbet, så skriv et manuskript, der skriver et manuskript til at udføre jobbet!

Du vil have en masse ALTER TABLE-udsagn:

SET SESSION group_concat_max_len = 1000000; -- Bumps the limit of 1028
SELECT GROUP_CONCAT(
    CONCAT(
        'ALTER TABLE `',
        table_name,
        '` MODIFY COLUMN `',
        column_name,
        '` VARCHAR(',
        character_maximum_length,
        ')'
    )
SEPARATOR ';\n') your_alter_statements
FROM information_schema.columns
WHERE table_schema = 'concrete'
AND data_type = 'char';

Dette vil resultere i:

ALTER TABLE `table1` MODIFY COLUMN `col1` VARCHAR(10);
ALTER TABLE `table1` MODIFY COLUMN `col2` VARCHAR(10);
ALTER TABLE `table2` MODIFY COLUMN `col1` VARCHAR(10);
ALTER TABLE `table3` MODIFY COLUMN `col1` VARCHAR(10);
ALTER TABLE `table3` MODIFY COLUMN `col2` VARCHAR(10);

Kør det, og du kan gå tidligt hjem!

OPDATERING:Stoppet trunkeringen ved at tilføje group_concat_max_len . Gjorde længden dynamisk baseret på kolonnelængden.



  1. PHPMyAdmin advarselsboks - mangler værdi i formularen - er alle sædvanlige felter udfyldt?

  2. Hvor kan jeg finde MySQL-logfiler i phpMyAdmin?

  3. Hvordan installerer man den rigtige version af phpmyadmin på Centos 6.9 i overensstemmelse hermed?

  4. ændre standardsorteringen i phpmyadmin