Mysql
 sql >> база данни >  >> RDS >> Mysql

Как промяната на типа поле на mysql от INT на VARCHAR ще повлияе на данните, съхранявани преди това като INT

Поставете вашия MySQL сървър в строг режим, преди да промените типа на колоната и се уверете, че вашият varchar(n) колоната има достатъчно голям n за да задържи всички цели числа, когато се преобразуват в низове. Ако не сте в строг режим, MySQL безшумно ще съкрати вашите данни за да пасне на вашия размер на низ :

Но ако влезете в строг режим първо:

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

Ще получите хубаво съобщение за грешка като това:

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

ако всичките ви числа не се побират във вашия varchar .

И, разбира се, ще имате ново потвърдено резервно копие на вашата база данни, преди да опитате да промените таблицата. И от проверено Искам да кажа, че успешно възстановихте архива си в тестова база данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сериализацията на 'Closure' не е разрешена - laravel

  2. MySQL:Код на грешка:1118 Размерът на ред е твърде голям (> 8126). Промяна на някои колони на TEXT или BLOB

  3. Грешка в MySQL 2006 (HY000) на ред 406:MySQL сървърът е изчезнал

  4. Как да автоматизираме събирането на данни и да не замразяваме с 10%

  5. mysql сравнение на дата с date_format