DBAtlas · Atlas de operações de banco de dados

1406: Data too long for column

MySQL

O que significa?

Foi gravado um valor maior que o comprimento máximo definido da coluna. Por exemplo, uma string de 20 caracteres não cabe em uma coluna VARCHAR(10).

Por que acontece?

Largura da coluna pequena demais para os dados; caracteres em um character set multibyte (utf8mb4) ocupando mais espaço que o esperado; o resultado de uma concatenação ficando mais longo; SQL mode estrito ativo (caso contrário, o valor é truncado silenciosamente).

Como resolver

Amplie a coluna: ALTER TABLE my_table MODIFY my_column VARCHAR(255); Para conteúdo muito longo, considere o tipo TEXT. Se o valor precisar ser encurtado, corte-o na aplicação ou com SUBSTRING. Encontre a linha que estoura: SELECT * FROM my_table WHERE CHAR_LENGTH(my_column) > 10; Adicione validação de entrada.

Abrir no DBAtlas →

Mais entradas deste banco