MySQLのENUM型カラムに新しいメンバー(値)を追加する方法
MySQLのENUM型カラムに新しいメンバー(選択肢となる値)を追加するには、ALTER TABLEコマンドを使用します。ポイントは、既存の値をすべて含めたうえで、追加したい新しい値を一緒に列挙し直すことです。
基本構文
ALTER TABLE yourTableName MODIFY COLUMN yourColumnName enum(yourOldValue1,yourOldValue2,....N,yourNewValue1,yourNewValue2,....N);
MODIFY COLUMN句でENUM型を再定義する際は、既存の値を必ず先頭から順番どおりに記述してください。ENUMは内部的に値をインデックス(1から始まる番号)として管理しているため、既存の値の順序を入れ替えたり削除したりすると、すでに格納されているデータとの対応関係が崩れる恐れがあります。
サンプルテーブルの作成
まず、動作を確認するためのテーブルを作成しましょう。以下のクエリを実行します。
mysql> create table EnumDemo
-> (
-> AllColors enum('RED','GREEN')
-> );
Query OK, 0 rows affected (0.66 sec)
この時点で、AllColorsカラムには「RED」と「GREEN」の2つのメンバーが定義されています。
ENUM型に新しいメンバーを追加する
それでは、「YELLOW」と「BLUE」の2つの値を追加してみましょう。以下のようにALTER TABLE文を実行します。
mysql> alter table EnumDemo
-> modify column AllColors enum('RED','GREEN','YELLOW','BLUE');
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
変更結果の確認
テーブル構造が正しく更新されているかどうかを確認しましょう。SHOW CREATE TABLE文を実行して現在のテーブル定義を表示します。
mysql> SHOW CREATE TABLE EnumDemo;
出力結果
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EnumDemo | CREATE TABLE `enumdemo` (`AllColors` enum('RED','GREEN','YELLOW','BLUE') DEFAULT NULL ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
出力結果を見ると、ENUM定義に「YELLOW」と「BLUE」の2つの新しいメンバーが正常に追加されていることが確認できます。
まとめ
- ENUM型へのメンバー追加は
ALTER TABLE ... MODIFY COLUMNを使えば簡単に行えます。 - 既存の値は順序を変えずにすべて残し、新しい値は末尾に追加するのが安全です。
- 重要なテーブルを変更する場合は、実行前にバックアップを取得しておくと安心です。
-
MySQLでDATETIME型の列に時間を追加する方法|ADDTIME()関数の使い方を解説
DATETIME型の値に時間を加算したい場合、MySQLではADDTIME()関数を使うのが便利です。この記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、ADDTIME()関数で時間を追加する手順をわかりやすく解説します。1. テーブルを作成するまず、DATETIME型の列を持つテーブルを作成します。mysql> create table DemoTable1848 ( ShippingDate datetime ); Query OK, 0 rows affected (0.00 sec)2. サンプルデータを挿入する次に、INSERT文を使って
-
PythonでMySQLのテーブルに新しい列(カラム)を追加する方法
既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name