日期:2014-05-16 浏览次数:21096 次
CREATE TABLE `20121101_t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `cl` set('x','w','r') NOT NULL, `c2` enum('f','d') NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB insert into 20121101_t values(null,'a.txt','r,w','d'); insert into 20121101_t values(null,'b.txt','r,w','f');
ENUM
是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。
在下列某些情况下,值也可以是空串(""
) 或NULL
:
ENUM
(即,一个不在允许值列表中的字符串),空字符串将作为一个特殊的错误值被插入。事实上,这个字符串有别于一个"普通的"空字符串,因为这个字符串有个数字索引值为 0。稍后有更详细描述。ENUM
被声明为NULL
,NULL
也是该列的一个合法值,并且该列的缺省值也将为NULL
。如果一个ENUM
被声明为NOT
NULL
,该列的缺省值将是该列表所允许值的第一个成员。每个枚举值均有一个索引值:
SELECT
语句找出被赋于无效ENUM
值的记录行。
mysql> SELECT * FROM tbl_name WHERE enum_col=0;
NULL
值的索引值为NULL
。例如,指定为 ENUM("one", "two", "three")
的一个列,可以有下面所显示的任一值。每个值的索引值也如下所示:
值 | 索引值 |
NULL |
NUL
|