Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como a alteração do tipo de campo mysql de INT para VARCHAR afetará os dados armazenados anteriormente como um INT


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.