MySQLのENUM型にデフォルト値を設定・挿入する方法を解説
MySQLでは、ENUMデータ型にDEFAULT属性を使うことで、値が指定されなかった場合に自動的に挿入されるデフォルト値を設定できます。DEFAULT属性が指定されているカラムは、INSERT文で明示的に値を渡さなくても、DEFAULTキーワードの後に記述された値が自動的に挿入されます。
なお、DEFAULT式には関数を使用できない点に注意してください。ENUMデータ型で使用できるデフォルト値は、通常の列挙値のほかにNULLや空文字列('')も含まれます。
実際の使用例
以下のように、ENUM型カラムを定義する際にDEFAULT属性を指定してテーブルを作成します。
mysql> CREATE TABLE enum123(Rollno INT, Name VARCHAR(20), result ENUM('Pass','Fail') DEFAULT 'Fail');
Query OK, 0 rows affected (0.12 sec)
mysql> INSERT INTO enum123(Rollno, Name) VALUES(25, 'Raman');
Query OK, 1 row affected (0.13 sec)この例では、INSERT文で「result」カラムに値を指定していません。そのため、テーブル定義時にDEFAULT属性として設定した「Fail」が自動的に挿入されます。
挿入結果の確認
mysql> SELECT * FROM enum123; +---------+--------+--------+ | Rollno | Name | result | +---------+--------+--------+ | 25 | Raman | Fail | +---------+--------+--------+ 1 row in set (0.00 sec)
SELECT文で確認すると、「result」カラムに明示的なINSERTを行っていないにもかかわらず、デフォルト値である「Fail」が格納されていることがわかります。
まとめ
ENUMデータ型とDEFAULT属性を組み合わせることで、特定の値を指定しなかった場合の初期値を柔軟に制御できます。ステータス管理など、決まった選択肢の中から値を選ぶ場面で特に有効な機能です。ただし、DEFAULT式に関数は使えないこと、NULLや空文字列もデフォルト値として指定できることを覚えておきましょう。
-
MySQLでカラムのデフォルト値をNULLに設定する方法
MySQLでは、DEFAULT NULLを指定することで、カラムのデフォルト値をNULLに設定できます。本記事では、実際にテーブルを作成し、デフォルト値NULLがどのように機能するかを具体的な例とともに解説します。デフォルト値がNULLのテーブルを作成するまず、DEFAULT NULLを指定したテーブルを作成します。mysql> create table DemoTable1440 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(2
-
MySQLでENUM型の値をCASE文を使って任意の順序で並べ替える方法
MySQLでENUM型のカラムを、定義された順序ではなく独自の条件に基づいて並べ替えたい場合があります。そんなときはORDER BYとCASEステートメントを組み合わせることで、自由にソート順を制御できます。この記事では、トランプのカード(K・J・A・Q)を例に、ENUM型の値を希望する順序で並べ替える具体的な手順を解説します。 1. ENUM型カラムを持つテーブルを作成する まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1461 -> ( -> DeckOfCards ENUM(K,J,A,Q