MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのENUM型(列挙型)から値を削除する方法をわかりやすく解説

MySQLのENUM型(列挙型)から不要な値を削除したい場合、ALTERコマンドを使用します。この記事では、実際のSQL例を使いながら、ENUM型から値を取り除く手順を順番に解説します。

1. サンプルテーブルの作成

まずは、3つの値(LOW・MEDIUM・HIGH)を持つENUM型カラムを含むテーブルを作成しましょう。

mysql> create table DemoTable
    (
    `Rank` ENUM('LOW','MEDIUM','HIGH')
    );
Query OK, 0 rows affected (0.52 sec)

2. テーブル構造の確認

DESCコマンドで、作成したテーブルの構造を確認してみます。

mysql> DESC DemoTable;

実行すると、次のような結果が表示されます。

+-------+-----------------------------+------+-----+---------+-------+
| Field | Type                        | Null | Key | Default | Extra |
+-------+-----------------------------+------+-----+---------+-------+
| Rank  | enum('LOW','MEDIUM','HIGH') | YES  |     | NULL    |       |
+-------+-----------------------------+------+-----+---------+-------+
1 row in set (0.00 sec)

この時点では、「Rank」カラムには LOW・MEDIUM・HIGH の3つの値が定義されていることがわかります。

3. ALTERコマンドでENUMから値を削除する

ENUM型から値を削除するには、ALTER TABLE ... CHANGE構文を使って、カラムの定義を新しいENUM値リストに置き換えます。ここでは「MEDIUM」を削除し、LOWとHIGHだけの定義に変更します。

mysql> alter table DemoTable change `Rank` `Rank` ENUM('LOW','HIGH');
Query OK, 0 rows affected (1.19 sec)
Records: 0 Duplicates: 0 Warnings: 0

4. 変更後のテーブル構造を確認する

もう一度DESCコマンドを実行して、変更が正しく反映されたか確認しましょう。

mysql> DESC DemoTable;

実行結果は以下の通りです。

+-------+--------------------+------+-----+---------+-------+
| Field | Type               | Null | Key | Default | Extra |
+-------+--------------------+------+-----+---------+-------+
| Rank  | enum('LOW','HIGH') | YES  |     | NULL    |       |
+-------+--------------------+------+-----+---------+-------+
1 row in set (0.00 sec)

まとめ

MySQLのENUM型から値を削除するには、ALTER TABLE文とCHANGE句を組み合わせて、カラム定義を希望する値リストで上書きします。上記の例では、MEDIUMを除外した新しいENUM定義に置き換えることで、値の削除が完了しました。

注意点: 削除対象の値がすでにテーブル内のレコードで使用されている場合、厳密なSQLモードではエラーになるか、該当データの処理に注意が必要です。変更前に必ずデータのバックアップを取ることをおすすめします。

  1. MySQLで他のカラムの値から新しいカラムの値を導出する方法

    MySQLではユーザー定義変数(ユーザー変数)を活用することで、既存のカラムの値をもとに別のカラムの値を計算・導出できます。本記事では、累積和(累積合計)を求める具体例を通して、その方法をわかりやすく解説します。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable1868 ( Value int ); Query OK, 0 rows affected (0.00 sec)レコードの挿入insertコマンドを使って、テーブルにデータを挿入します。mysql> insert into DemoTable1

  2. C#の列挙型(enum)からint値を取得する方法をわかりやすく解説

    C#では、列挙型(enum)の値を整数値として扱いたい場面がよくあります。例えば、データベースへの保存やAPIとの連携などがその代表例です。そんなときは、明示的なキャスト(型変換)を使うだけで、簡単にint値を取得できます。 手順1:列挙型を定義する まず、次のように列挙型を定義します。 public enum Vehicle { Car, Bus, Truck } 手順2:(int)でキャストしてint値を取得する 列挙型の値をintに変換するには、(int)による明示的なキャストを使用します。 int a = (int)Vehicle.Car; 完全なサンプルコード 以下は、列挙型の