2010-02-21 56 views
2
mysql> CREATE TABLE foo (f ENUM('a', '123')); 

mysql> insert into foo(f) value(3); 
Query OK, 1 row affected, 1 warning (0.00 sec) 

mysql> select * from foo; 
+------+ 
| f | 
+------+ 
|  | 
+------+ 

如何在插入值超出范围时产生失败?如何防止MySQL中枚举列的空值

回答

5

10.4.4. The ENUM Type

如果启用严格的SQL模式, 尝试插入无效枚举值 结果错误。

+0

如何启用严格模式? – user198729 2010-02-21 10:53:36

+1

要在mysql提示符下键入'SELECT @@ global.sql_mode;'来检查我们当前的SQL模式。要将当前SQL模式更改为严格类型'SET @@ global.sql_mode =“STRICT_ALL_TABLES”;' – 2010-02-21 10:56:09

+0

尝试过,不工作,仍然插入空值 – user198729 2010-02-21 10:59:16