MySQLで指定カラムを削除する方法をご紹介!

WEBアプリケーションを開発する上でDB操作の知識は必須です。作成済みのテーブルに対して、カラムを追加したり、変更したり、削除する必要がある場面が出てきます。この記事ではMySQLで既存のテーブルに対して、指定したカラムを削除する方法を紹介しています。

コンテンツ [表示]

  1. 1MySQLで指定カラムを削除する方法
  2. 1.1カラムを削除する方法
  3. 1.2複数カラムを削除する方法

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つと同時に削除することが可能です。

GeekHive採用サイト

関連記事