Eu tive o mesmo problema, com um campo de banco de dados com o tipo "SET" que é um tipo de enum.
Tentei adicionar um valor que não estava nessa lista.
O valor que tentei adicionar tinha o valor decimal 256, mas a lista de enum tinha apenas 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
Então, eu apenas tive que adicionar o valor adicional ao campo.
Ler esta entrada da documentação me ajudou a entender o problema.
O MySQL armazena valores SET numericamente, com o bit de ordem inferior do valor armazenado correspondendo ao primeiro membro do conjunto. Se você recuperar um valor SET em um contexto numérico, o valor recuperado terá um conjunto de bits correspondente aos membros do conjunto que constituem o valor da coluna. Por exemplo, você pode recuperar valores numéricos de uma coluna SET como este:
mysql> SELECT set_col+0 FROM tbl_name; If a number is stored into a
Se um número for armazenado em uma coluna SET, os bits que são definidos na representação binária do número determinam os membros do conjunto no valor da coluna. Para uma coluna especificada como SET ('a', 'b', 'c', 'd'), os membros têm os seguintes valores decimais e binários.
SET Member Decimal Value Binary Value
'a' 1 0001
'b' 2 0010
'c' 4 0100
'd' 8 1000
Se você atribuir um valor de 9 a esta coluna, isso é 1001 em binário, então o primeiro e o quarto membros do valor SET 'a' e 'd' são selecionados e o valor resultante é 'a, d'.