Hi, your enum canbe NULL and is not indexed. So you can insert values not in enum, replaced by NULL.
a solution is to UNIQUE index the enum column, and insert a unique bad value in it. Any value not in enum can not then be inseted : mysql> create table enum_test(id int, name enum('test1','test2') NOT NULL, UNIQUE KEY(name)); Query OK, 0 rows affected (0.06 sec) mysql> desc enum_test; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | enum('test1','test2') | | PRI | test1 | | +-------+-----------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> INSERT INTO enum_test VALUES (0,'test3'); Query OK, 1 row affected, 1 warning (0.02 sec) mysql> INSERT INTO enum_test(id) VALUES (1); Query OK, 1 row affected (0.01 sec) mysql> SELECT * from enum_test; +------+-------+ | id | name | +------+-------+ | 0 | | | 1 | test1 | +------+-------+ 2 rows in set (0.00 sec) mysql> INSERT INTO enum_test VALUES (1,'test3'); ERROR 1062 (23000): Duplicate entry '' for key 1 Mathias Selon Michael Kruckenberg <[EMAIL PROTECTED]>: > > Hi, > > Use enum with a default type and let mysql do the check for you. > > The problem with an enum is that if you insert a value that's not in > the enum, MySQL doesn't stop the insert, it leaves the column empty. > This doesn't enforce data integrity like I think Chris wanted. > > mysql> desc enum_test; > +-------+-----------------------+------+-----+---------+-------+ > | Field | Type | Null | Key | Default | Extra | > +-------+-----------------------+------+-----+---------+-------+ > | id | int(11) | YES | | NULL | | > | name | enum('test1','test2') | YES | | test2 | | > +-------+-----------------------+------+-----+---------+-------+ > 2 rows in set (0.25 sec) > > mysql> INSERT INTO enum_test VALUES (1,'test3'); > Query OK, 1 row affected, 1 warning (0.29 sec) > > mysql> SELECT * from enum_test; > +------+------+ > | id | name | > +------+------+ > | 1 | | > +------+------+ > 1 row in set (0.00 sec) > > Mike Kruckenberg > [EMAIL PROTECTED] > "ProMySQL" Author > http://www.amazon.com/exec/obidos/ASIN/159059505X > > > Hope that helps :o) Mathias -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]