MySQLで指定カラムを削除する方法をご紹介!
WEBアプリケーションを開発する上でDB操作の知識は必須です。作成済みのテーブルに対して、カラムを追加したり、変更したり、削除する必要がある場面が出てきます。この記事ではMySQLで既存のテーブルに対して、指定したカラムを削除する方法を紹介しています。
MySQLで指定カラムを削除する方法
MySQLで作成済みのテーブルからカラム(列)を削除する方法について紹介していきます。
まずは作成済みのusersテーブルの項目がどのように追加されているのかを確認してみましょう。
mysql> Describe users;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql>
主キーのidを含む6つのカラム(列)が設定されていることが分かります。
カラムを削除する方法
それでは早速カラムの削除を実行していきましょう。
ここではage
カラムを試しに削除してみましょう。下記のコマンドでage
カラムを削除することができます。
mysql> ALTER TABLE users DROP COLUMN age;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
「Query OK」と表示され、age
カラムの削除が実行されました。再度、users
テーブルの項目を確認してみましょう。
mysql> Describe users;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql>
ちゃんとage
カラムが削除されましたね。
MySQLではALTER TABLE テーブル名 DROP COLUMN カラム名;
とすることでカラムを削除することが可能です。
複数カラムを削除する方法
次に複数のカラムを同時に削除してみましょう。
created_at
カラムとupdated_at
カラムを同時に削除します。下記コマンドを実行します。
mysql> ALTER TABLE users DROP COLUMN created_at, DROP COLUMN updated_at;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
上記のようにカンマ区切りで複数のカラムを指定することができます。
mysql> Describe users;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
mysql>
複数カラムを同時に削除することができました。カンマ区切りを増やすことで2つのカラムだけでなく、3つ4つと同時に削除することが可能です。
