Porta il tuo server MySQL in modalità rigorosa prima di modificare il tipo di colonna e assicurati che il tuo varchar(n)
la colonna ha un n
sufficientemente grande per contenere tutti gli interi quando vengono convertiti in stringhe. Se non sei in modalità rigorosa, MySQL troncherà silenziosamente i tuoi dati per adattarsi alle dimensioni della tua stringa
:
Ma se entri in modalità rigorosa primo:
mysql> set sql_mode = 'STRICT_ALL_TABLES';
mysql> alter table table_sample change col_sample col_sample varchar(6);
Riceverai un bel messaggio di errore come questo:
ERROR 1406 (22001): Data too long for column 'col_sample' at row ...
se i tuoi numeri interi non rientrano tutti nel tuo varchar
.
E, naturalmente, avrai un nuovo backup verificato del tuo database prima di provare a cambiare la tabella. E da verificato Voglio dire che hai ripristinato con successo il tuo backup in un database di prova.