MySQL ENUM 類型可以使用以下影響允許值的屬性來定義 –
- NOT NULL ?-在 ENUM 類型中,默認允許 NULL 值。為了禁止 NULL 值,我們需要在描述 ENUM 列時使用 NOT NULL 屬性。NULL? – NULL 屬性是 DEFAULT NULL 的同義詞。 NULL 的索引值為 NULL。DEFAULT? – DEFAULT 屬性會導致 ENUM 數據類型在未指定值時具有默認值。換句話說,我們可以說 INSERT 語句不必包含該字段的值,因為如果不包含則將插入 DEFAULT 后面的值。 DEFAULT 表達式中不允許使用函數。對于 ENUM 數據類型,DEFAULT 值包括 NULL 和空字符串 (”)。
示例
以下示例將展示這些屬性與 ENUM 數據類型的使用。
mysql> SET SESSION sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> Create Table enumtesting(e_value ENUM('a','1')NOT NULL DEFAULT '1',id TINYINT NOT NULL);
Query OK, 0 rows affected (0.23 sec)
mysql>Insert into
enumtesting(e_value,id)values('1','1'),('',2),(NULL,3),('abc',4);
Query OK, 4 rows affected, 3 warnings (0.09 sec)
Records: 4 Duplicates: 0 Warnings: 3
mysql> show warnings;
+---------+------+----------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'e_value' at row 2 |
| Warning | 1048 | Column 'e_value' cannot be null |
| Warning | 1265 | Data truncated for column 'e_value' at row 4 |
+---------+------+----------------------------------------------------+
3 rows in set (0.00 sec)
mysql> Select * from enumtesting;
+----+---------+
| e_value | id |
+---------+----+
| 1 | 1 |
| | 2 |
| | 3 |
| | 4 |
+---------+----+
4 rows in set (0.00 sec)
mysql> insert into enumtesting(id) values(5);
Query OK, 1 row affected (0.11 sec)
mysql> Select * from enumtesting;
+---------+----+
| e_value | id |
+---------+----+
| 1 | 1 |
| | 2 |
| | 3 |
| | 4 |
| 1 | 5 |
+---------+----+
5 rows in set (0.00 sec)
mysql> select e_value, e_value+0 AS enum_index, id from enumtetsing;
+---------+------------+----+
| e_value | enum_index | id |
+---------+------------+----+
| 1 | 2 | 1|
| | 0 | 2|
| | 0 | 3|
| | 0 | 4|
| 1 | 2 | 5|
+---------+------------+----+
5 rows in set (0.00 sec)
登錄后復制
以上就是MySQL ENUM 數據類型有哪些不同的屬性?的詳細內容,更多請關注www.92cms.cn其它相關文章!






