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

Wijzig het gegevenstype van een kolom in de hele database - MySQL

Als je geen script kunt schrijven om het werk te doen, schrijf dan een script dat een script schrijft om het werk te doen!

U wilt een aantal ALTER TABLE-instructies:

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

Dit resulteert in:

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

Voer dat uit en je kunt vroeg naar huis gaan!

UPDATE:Het afkappen gestopt door group_concat_max_len toe te voegen . De lengte dynamisch gemaakt op basis van de kolomlengte.



  1. phpMyAdmin-fout:de mbstring-extensie ontbreekt. Controleer uw PHP-configuratie

  2. hoe composiet uniek aan een kolom in de tabel toe te voegen mysql

  3. MySQL UPDATE met SUBQUERY van dezelfde tabel

  4. Mysql Workbench Mac OS ontbreekt beheertools en gegevens importeren/exporteren