sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo afectará el cambio del tipo de campo mysql de INT a VARCHAR a los datos previamente almacenados como INT?

Ponga su servidor MySQL en modo estricto antes de cambiar el tipo de columna y asegúrese de que su varchar(n) la columna tiene un n suficientemente grande para contener todos los enteros cuando se convierten en cadenas. Si no está en modo estricto, MySQL truncará silenciosamente sus datos para adaptarse a su tamaño de cadena :

Pero si entras en modo estricto primero:

mysql> set sql_mode = 'STRICT_ALL_TABLES';
mysql> alter table table_sample change col_sample col_sample varchar(6);

Recibirás un bonito mensaje de error como este:

ERROR 1406 (22001): Data too long for column 'col_sample' at row ...

si sus números enteros no caben en su varchar .

Y, por supuesto, tendrá una nueva copia de seguridad verificada de su base de datos antes de intentar cambiar la tabla. Y por verificado Quiero decir que ha restaurado con éxito su copia de seguridad en una base de datos de prueba.