sql >> Databáze >  >> RDS >> Mysql

Jak změna typu pole mysql z INT na VARCHAR ovlivní data dříve uložená jako INT

Než změníte typ sloupce, uveďte svůj server MySQL do přísného režimu a ujistěte se, že váš varchar(n) sloupec má dostatečně velký n podržet všechna celá čísla, když jsou převedena na řetězce. Pokud nejste v přísném režimu, MySQL potichu zkrátí vaše data aby se vešly na velikost vaší struny :

Ale pokud se dostanete do přísný režim první:

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

Zobrazí se pěkná chybová zpráva, jako je tato:

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

pokud se vaše celá čísla nevejdou do vašeho varchar .

A samozřejmě budete mít čerstvou ověřenou zálohu databáze, než se pokusíte tabulku změnit. A podle ověřeno Myslím tím, že jste úspěšně obnovili zálohu do testovací databáze.




  1. Za jakých okolností byste chtěli, aby Rails bylo nastaveno tak, aby se NEpřipojovalo k MYSQL

  2. Ladit PDO mySql vložit NULL do databáze místo prázdné

  3. ID zdroje #10, když chci echo proměnnou s php a mysql

  4. Jak připojit amazon RDS v iOS