仕事をするためのスクリプトを書くことができない場合は、仕事をするためのスクリプトを書くスクリプトを書いてください!
一連の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
を追加して、切り捨てを停止しました 。列の長さに基づいて長さを動的にしました。