Coloque seu servidor MySQL no modo estrito antes de alterar o tipo de coluna e certifique-se de que seu
varchar(n)
coluna tem um n
grande o suficiente para manter todos os inteiros quando eles são convertidos em strings. Se você não estiver no modo estrito, o MySQL truncará silenciosamente seus dados para caber no tamanho da sua string
:Mas se você entrar em modo estrito primeiro:
mysql> set sql_mode = 'STRICT_ALL_TABLES';
mysql> alter table table_sample change col_sample col_sample varchar(6);
Você receberá uma bela mensagem de erro como esta:
ERROR 1406 (22001): Data too long for column 'col_sample' at row ...
se seus inteiros não couberem em seu
varchar
. E, claro, você terá um novo backup verificado do seu banco de dados antes de tentar alterar a tabela. E por verificado Quero dizer que você restaurou com sucesso seu backup em um banco de dados de teste.