DROP TABLE `testenum`; CREATE TABLE `testenum` (`project` enum('org.eclipse.emf','org.eclipse.emf.ecore.sdo','org.eclipse.emft','org.eclipse.m2t','org.eclipse.mdt','org.eclipse.uml2','org.eclipse.xsd') NOT NULL, `component` enum('','a','b') NOT NULL, PRIMARY KEY(`project`, `component`)); INSERT INTO `testenum` (`project`, `component`) VALUES ('org.eclipse.emf', 'abc'), ('org.eclipse.emf', ''); SELECT COUNT(*), `component` FROM `testenum` GROUP BY `component`; SELECT COUNT(*) FROM `testenum` WHERE `component` = ''; SELECT COUNT(*) FROM `testenum` WHERE `component` = 0; ALTER TABLE `testenum` CHANGE `component` `component` enum('','abc','b'); -- The duplicates are one problem, although it can be worked around, but with negative side effects... UPDATE `testenum` SET `component` = 'b' WHERE `component` != 0; ALTER TABLE `testenum` CHANGE `component` `component` enum('','abc','b'); UPDATE `testenum` SET `component` = 'abc' WHERE `component` = 0; SELECT * FROM `testenum`;