sql >> Databasteknik >  >> RDS >> Mysql

Hur kommer att ändra mysql-fälttypen från INT till VARCHAR påverka data som tidigare lagrats som en INT

Få din MySQL-server i strikt läge innan du ändrar kolumntyp och se till att din varchar(n) kolumnen har ett tillräckligt stort n att hålla alla heltal när de konverteras till strängar. Om du inte är i strikt läge kommer MySQL att tyst trunkera din data för att passa din strängstorlek :

Men om du kommer in på strikt läge först:

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

Du kommer att få ett trevligt felmeddelande så här:

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

om inte alla dina heltal passar i din varchar .

Och, naturligtvis, kommer du att ha en ny verifierad säkerhetskopia av din databas innan du försöker ändra tabellen. Och av verifierad Jag menar att du framgångsrikt har återställt din säkerhetskopia till en testdatabas.




  1. Unik alfanumerisk generator

  2. Hur man infogar taggar i databasen med jquery html och php

  3. php/mysql lägg ihop rader för att få totalt

  4. mysql konverterar flera rader till kolumner i en enda rad