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`;
カラム変更をまとめて行う
ADD
、DROP
、CHANGE
、MODIFY
はカンマ区切りで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';