sql >> Database teknologi >  >> RDS >> Mysql

Hvordan vil ændring af mysql-felttypen fra INT til VARCHAR påvirke data, der tidligere er gemt som en INT

Få din MySQL-server i streng tilstand, før du ændrer kolonnetypen og sørg for, at din varchar(n) kolonne har en stor nok n at holde alle de heltal, når de konverteres til strenge. Hvis du ikke er i streng tilstand, vil MySQL lyde afkorte dine data passer til din strengstørrelse :

Men hvis du kommer ind på streng tilstand først:

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

Du får en god fejlmeddelelse som denne:

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

hvis dine heltal ikke alle passer ind i din varchar .

Og, selvfølgelig, vil du have en frisk bekræftet sikkerhedskopi af din database, før du forsøger at ændre tabellen. Og af bekræftet Jeg mener, at du har gendannet din sikkerhedskopi til en testdatabase.




  1. Reverse engineer SQLAlchemy deklarativ klassedefinition fra eksisterende MySQL-database?

  2. PostgreSQL-udløsere og grundlæggende funktioner i lagrede funktioner

  3. Hvordan CTE kan hjælpe med at skrive komplekse, kraftfulde forespørgsler:et præstationsperspektiv

  4. Fatal fejl:Kald til udefineret funktion mysql_connect_errno() i