DROP TABLEステートメントとCREATE TABLEステートメント
MySQLでALTERを使って存在する列を削除する方法
MySQLでは、ALTER TABLE
ステートメントを使用して、既存のテーブルから列を削除することができます。この操作は、テーブル構造を変更するDDL(Data Definition Language)操作の一つです。
手順
以下の手順で、ALTER TABLE
を使って存在する列を削除することができます。
-
MySQLクライアントに接続する
-
ALTER TABLEステートメントを実行する
ALTER TABLE テーブル名 DROP COLUMN 列名;
テーブル名
は、列を削除するテーブルの名前です。列名
は、削除する列の名前です。
例
以下の例は、users
テーブルからage
列を削除する例です。
ALTER TABLE users DROP COLUMN age;
注意事項
- 削除する列にデータが存在する場合は、エラーが発生します。事前にデータを削除するか、
DROP COLUMN IF EXISTS
オプションを使用する必要があります。 - 外部キー制約など、列に関連する制約が存在する場合は、事前に削除する必要があります。
ALTER TABLE
ステートメントは、テーブル全体に対してロックを取得するため、実行中は他のユーザーがテーブルにアクセスできない場合があります。
補足
-- MySQLクライアントに接続
# コマンドライン
mysql -u root -p
# GUIツール
MySQL Workbench を起動
-- ALTER TABLEステートメントを実行
USE my_database;
ALTER TABLE users DROP COLUMN age;
-- データベース接続を閉じる
# コマンドライン
exit
# GUIツール
MySQL Workbench を閉じる
実行結果
Query OK, 0 rows affected (0.01 sec)
- 上記のコードを実行する前に、
users
テーブルが存在することを確認してください。
存在する列を削除する他の方法
DROP TABLEステートメントとCREATE TABLEステートメントを使用する
この方法は、MySQL4でも使用できます。
-- テーブルを削除
DROP TABLE users;
-- 列を削除した新しいテーブルを作成
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
GUIツールを使用する
MySQL WorkbenchなどのGUIツールを使用して、列を削除することができます。
- GUIツールでデータベースに接続します。
- 削除する列を含むテーブルを開きます。
- 列を右クリックして、削除を選択します。
- DROP TABLEステートメントを使用する場合は、テーブル全体が削除されるため、注意が必要です。
mysql ddl mysql4