MySQL如何处理枚举的空值和空值?
仅当未将SQL模式设置为TRADITIONAL,STRICT_TRANS_TABLES或STRICT_ALL_TABLES时,MySQL才接受用于枚举的空值。否则,MySQL将不接受空值并引发错误。我们知道每个枚举值都有一个索引值,空值将有0个索引值。
示例
mysql> SET SQL_MODE ='Traditional'; mysql> Insert into result(id, name,grade) values(100, 'Raman', ''); ERROR 1265 (01000): Data truncated for column 'Grade' at row 1
现在,更改SQL模式后,我们将能够如下插入空字符串:
mysql> Set SQL_MODE =''; mysql> Insert into result(id, name, grade) values(100, 'Raman', ''); mysql> select * from result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Raman | | +-----+-------+-------+ 1 row in set (0.00 sec)
仅当我们未在ENUM列中指定NOTNULL时,MySQL才接受NULL值进行枚举。我们知道每个枚举值都有一个索引值,因此NULL的索引值为NULL。
示例
mysql> Insert into result(id, name, grade) values(101, 'Rahul', NULL);
上面的查询将插入NULL值,因为我们没有在ENUM列声明中指定NOTNULL。
mysql> select * from result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Raman | | | 101 | Rahul | NULL | +-----+-------+-------+ 2 rows in set (0.00 sec)
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下