sql >> Databáze >  >> Database Tools >> phpMyAdmin

Změňte datový typ sloupce v celé databázi - MySQL

Pokud nemůžete napsat skript k provedení úlohy, napište skript, který napíše skript k provedení úlohy!

Chcete spoustu příkazů ALTER TABLE:

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

Výsledkem bude:

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

Spusťte to a můžete jít brzy domů!

AKTUALIZACE:Zkracování bylo zastaveno přidáním group_concat_max_len . Nastavil délku dynamickou na základě délky sloupců.



  1. Pracovní plocha Eclipse se při spuštění zhroutí

  2. SQL Daily Vynikající prodeje, Rolling Aggregate?

  3. Chyba Microsoft SQL Server:18456

  4. Jak vytvořím kontextový AUTO_INCREMENT v MySql?