Przełącz serwer MySQL w tryb ścisły przed zmianą typu kolumny i upewnij się, że Twój varchar(n)
kolumna ma wystarczająco duży n
do przechowywania wszystkich liczb całkowitych, gdy są konwertowane na łańcuchy. Jeśli nie pracujesz w trybie ścisłym, MySQL po cichu skróci twoje dane aby dopasować rozmiar sznurka
:
Ale jeśli dostaniesz się do tryb ścisły po pierwsze:
mysql> set sql_mode = 'STRICT_ALL_TABLES';
mysql> alter table table_sample change col_sample col_sample varchar(6);
Otrzymasz taki miły komunikat o błędzie:
ERROR 1406 (22001): Data too long for column 'col_sample' at row ...
jeśli twoje liczby całkowite nie mieszczą się w twoim varchar
.
I oczywiście będziesz mieć świeżo zweryfikowaną kopię zapasową bazy danych, zanim spróbujesz zmienić tabelę. I przez zweryfikowany Mam na myśli, że pomyślnie przywróciłeś kopię zapasową do testowej bazy danych.