mysqlで複数カラムを追加・削除したい

mysqlで同一テーブルに対して複数カラムの追加・削除する必要があるときに、
今まで複数のALTER文を発行していたけど、1クエリーで実行できるように書くようにした。

カラム追加

複数行で書くと普通にALTER文を何回か書く感じになる。

ALTER TABLE `table` ADD COLUMN `column1` decimal(11,2) NOT NULL DEFAULT `0`;
ALTER TABLE `table` ADD COLUMN `column2` varchar(255) NOT NULL DEFAULT 'neko';

これを1行で書くと

ALTER TABLE `table` ADD COLUMN `column1` decimal(11,2) NOT NULL DEFAULT `0`,
                    ADD COLUMN `column2` varchar(255) NOT NULL DEFAULT 'neko';

1回のクエリで実行できてなんかいい感じだ。

カラム削除

これも複数行で書くと

ALTER TABLE `table` DROP COLUMN `column1`;
ALTER TABLE `table` DROP COLUMN `column2`;

これを1行で書くと

ALTER TABLE `table` DROP COLUMN `column1`,
                    DROP COLUMN `column2`;

カラム変更をまとめて行う

ADDDROPCHANGEMODIFYはカンマ区切りで1つのクエリでまとめられる。

tableに対して、カラム追加・カラム削除・カラム名(とカラム定義)変更、カラム定義変更を1クエリで行う。

ALTER TABLE `table` ADD COLUMN `column1` decimal(11,2) NOT NULL DEFAULT `0`,
                    DROP COLUMN `exist_column1`,
                    CHANGE COLUMN `old_column_name` `new_column` int(11) NOT NULL DEFAULT '1',
                    MODIFY COLUMN `pi` decimal(11,2) NOT NULL DEFAULT '3.14';