Las columnas ENUM y SET
          proporcionan una manera eficiente de definir columnas que
          contienen un conjunto dado de valores. Sin embargo, antes de
          MySQL 5.0.2, ENUM y SET
          no son restricciones reales. Esto es por la misma razón que
          NOT NULL tampoco lo es. Consulte
          Sección 1.7.6.2, “Restricciones (constraints) sobre datos inválidos”.
        
          Las columnas de tipo ENUM siempre tienen un
          valor por defecto. Si no especifica un valor por defecto,
          entonces será NULL para las columnas que
          permitan valores NULL, si no, se utiliza el
          primer valor de la enumeración como valor por defecto.
        
          Si inserta un valor incorrecto en una columna
          ENUM o si fuerza insertar un valor en una
          columna ENUM con IGNORE,
          se inicializa al valor reservado para enumeraciones
          0, el cual se muestra como una cadena
          vacía en un contexto de cadenas de caracteres. Consulte
          Sección 11.4.4, “El tipo de columna ENUM”.
        
          Si insertar un valor incorrecto en una columna
          SET, se ignora el valor incorrecto. Por
          ejemplo, si la columna puede contener los valores
          'a', 'b', y
          'c', un intento de insertar
          'a,x,b,y' resulta en un valor de
          'a,b'. Consulte Sección 11.4.5, “El tipo SET”.
        
          En MySQL 5.0.2, puede configurar el servidor para que use el
          modo estricto de SQL. Consulte
          Sección 5.3.2, “El modo SQL del servidor”. Cuando el modo estricto
          está activado, la definición de columnas
          ENUM o SET no actúa
          como una restricción en valores insertados en la columna. Los
          valores que no satisfacen estas condiciones provocan un error:
        
              Un valor ENUM debe elegirse entre los
              listados en la definición de la columna, o el equivalente
              numérico interno. El valor no puede ser un valor de error
              (esto es 0 o la cadena vacía). Para una columna definida
              como ENUM('a','b','c'), valores tales
              como "", 'd', y
              'ax' son ilegales y rehusados.
            
              Un valor SET debe ser una cadena vacía
              o un valor consistente en uno o más valores listados en
              la definición de la columna separados por comas. Para una
              columna definida como SET('a','b','c'),
              valores tales como 'd', y
              'a,b,c,d' serían ilegales y, por lo
              tanto, rehusados.
            
          Se pueden suprimir los errores derivados de valores inválidos
          en modo estricto usando INSERT IGNORE o
          UPDATE IGNORE. En ese caso, se genera una
          advertencia en lugar de un error. Para tipos
          ENUM, el valor se inserta como un miembro
          erróneo (0). Para tipo
          SET, el valor se inserta igual excepto que
          se borra cualquier subcadena inválida. Por ejemplo,
          'a,x,b,y' se convertiría en
          'a,b', como se ha descrito.
        
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

