Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zmiana typu pola mysql z INT na VARCHAR wpłynie na dane zapisane wcześniej jako INT?

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL z Node.js

  2. Plik wsadowy dla mysqldump do tworzenia kopii zapasowych każdej bazy danych w osobnym pliku

  3. Wykonywanie operacji matematycznych na tymczasowej kolumnie w SQL

  4. Rozmiar VARCHAR MySQL?

  5. MySQL — Wybierz, aby pobrać ostatnią datę i godzinę