Credits 1.7.3.4 ENUM and SET Constraints ENUM  and  SET  columns provide an efficient way to define columns that can contain only a given set of values. See Section 11.3.5, “The ENUM Type” , and Section 11.3.6, “The SET Type” . Unless strict mode is disabled (not recommended, but see Section 5.1.11, “Server SQL Modes” ), the definition of a  ENUM  or  SET  column acts as a constraint on values entered into the column. An error occurs for values that do not satisfy these conditions: Errors for invalid values can be suppressed in strict mode if you use  INSERT IGNORE  or  UPDATE IGNORE . In this case, a warning is generated rather than an error. For  ENUM , the value is inserted as the error member ( 0 ). For  SET , the value is inserted as given except that any invalid substrings are deleted. For example,  ’a,x,b,y’  results in a value of  ’a,b’ . The following sections list developers, contributors, and supporters that have helped to make MySQL what it is today. Although Oracle Corporation and/or its affiliates own all copyrights in the  MySQL server  and the  MySQL manual , we wish to recognize those who have made contributions of one kind or another to the  MySQL distribution . Contributors are listed here, in somewhat random order: The initial port to Win32/NT. For constructive criticism and real testing of the dynamic record format. Win32 port with Borland compiler.  mysqlshutdown.exe  and  mysqlwatch.exe . For the effort to make a shareware SQL database. At TcX, the predecessor of MySQL AB, we started with  mSQL , but found that it couldn’t satisfy our purposes so instead we wrote an SQL interface to our application builder Unireg.  mysqladmin  and  mysql  client are programs that were largely influenced by their  mSQL  counterparts. We have put a lot of effort into making the MySQL syntax a superset of mSQL . Many of the API’s ideas are borrowed from  mSQL  to make it easy to port free  mSQL  programs to the MySQL API. The MySQL software doesn’t contain any code from  mSQL . Two files in the distribution ( client/insert_test.c  and  client/select_test.c ) are based on the corresponding (noncopyrighted) files in the  mSQL  distribution, but are modified as examples showing the changes necessary to convert code from  mSQL  to MySQL Server. ( mSQL  is copyrighted David J. Hughes.) 84 •David J. Hughes •Irena Pancirov  <irena@mail.yacc.it> •Per Eric Olsson •Gianmassimo Vigazzola  <qwerg@mbox.vol.it>  or  <qwerg@tin.it> •A  SET  value must be the empty string or a value consisting only of the values listed in the column definition separated by commas. For a column defined as  SET(’a’,’b’,’c’) , values such as  ’d’  or ’a,b,c,d’  are invalid and are rejected. •An  ENUM  value must be one of those listed in the column definition, or the internal numeric equivalent thereof. The value cannot be the error value (that is, 0 or the empty string). For a column defined as ENUM(’a’,’b’,’c’) , values such as  ’’ ,  ’d’ , or  ’ax’  are invalid and are rejected. 1.8 Credits 1.8.1 Contributors to MySQL