sql >> Database >  >> RDS >> Mysql

Welke invloed heeft het wijzigen van het mysql-veldtype van INT in VARCHAR op gegevens die eerder zijn opgeslagen als een INT

Zet uw MySQL-server in de strikte modus voordat u het kolomtype wijzigt en zorg ervoor dat uw varchar(n) kolom heeft een voldoende grote n om alle gehele getallen vast te houden wanneer ze worden geconverteerd naar tekenreeksen. Als u zich niet in de strikte modus bevindt, zal MySQL in stilte uw gegevens inkorten om bij uw snaarmaat te passen :

Maar als je in strikte modus eerst:

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

Je krijgt een mooie foutmelding zoals deze:

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

als uw gehele getallen niet allemaal passen in uw varchar .

En natuurlijk heb je een nieuwe geverifieerde back-up van je database voordat je de tabel probeert te wijzigen. En door geverifieerd Ik bedoel dat je je back-up succesvol hebt teruggezet in een testdatabase.




  1. MySQL:de beste manier om MAC-adressen op te slaan?

  2. Databaseproblemen bij het toestaan ​​van permanente aanmeldingen van meerdere browsers

  3. mysql voorwaardelijk invoegen - indien niet bestaat invoegen

  4. Hoe dan ook om de uitvoeringstijd van MySQL-query's te beperken?