2010-02-21 58 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