sql >> データベース >  >> Database Tools >> phpMyAdmin

データベース全体の列のデータ型を変更する-MySQL

    仕事をするためのスクリプトを書くことができない場合は、仕事をするためのスクリプトを書くスクリプトを書いてください!

    一連のALTERTABLEステートメントが必要です:

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

    その結果、次のようになります。

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

    それを実行すると、早く家に帰ることができます!

    更新:group_concat_max_lenを追加して、切り捨てを停止しました 。列の長さに基づいて長さを動的にしました。



    1. MYSQL-警告:#1681整数の表示幅は非推奨です

    2. これらのSQLServerセッションはどこから来たのですか?

    3. phpMyAdminを使用してデータベーステーブルをコピーする

    4. PhpMyAdminがローカルホストで機能していません