Tuve el mismo problema, con un campo de base de datos con el tipo "SET", que es un tipo de enumeración.
Intenté agregar un valor que no estaba en esa lista.
El valor que intenté agregar tenía el valor decimal 256, pero la lista de enumeración solo tenía 8 valores.
1: 1 -> A
2: 2 -> B
3: 4 -> C
4: 8 -> D
5: 16 -> E
6: 32 -> F
7: 64 -> G
8: 128 -> H
Así que solo tuve que agregar el valor adicional al campo.
La lectura de esta entrada de documentación me ayudó a comprender el problema.
MySQL almacena los valores SET numéricamente, con el bit de orden inferior del valor almacenado correspondiente al primer miembro del conjunto. Si recupera un valor SET en un contexto numérico, el valor recuperado tiene un conjunto de bits correspondiente a los miembros del conjunto que componen el valor de la columna. Por ejemplo, puede recuperar valores numéricos de una columna SET como esta:
mysql> SELECT set_col+0 FROM tbl_name; If a number is stored into a
Si un número se almacena en una columna SET, los bits que se establecen en la representación binaria del número determinan los miembros del conjunto en el valor de la columna. Para una columna especificada como SET ('a', 'b', 'c', 'd'), los miembros tienen los siguientes valores decimales y binarios.
SET Member Decimal Value Binary Value
'a' 1 0001
'b' 2 0010
'c' 4 0100
'd' 8 1000
Si asigna un valor de 9 a esta columna, es decir 1001 en binario, entonces se seleccionan el primer y cuarto miembros del valor SET 'a' y 'd' y el valor resultante es 'a, d'.