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

MySQL 8 игнорира цели числа

Това е промяна, документирана в Бележки за версията на MySQL 8.0.19 :

"Дължината" на колона с цяло число не означава нищо. Колона от int(11) е същото като int(2) или int(40) . Всички те са 32-битов целочислен тип данни с фиксиран размер. Те поддържат една и съща минимална и максимална стойност.

"Дължината" на целочислените колони е объркваща характеристика на MySQL от години. Това е само намек, който влияе върху ширината на дисплея, а не върху съхранението или диапазона от стойности. На практика това има значение само когато използвате ZEROFILL опция.

mysql> create table t ( i1 int(6) zerofill, i2 int(12) zerofill );
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t set i1 = 123, i2 = 123;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t;
+--------+--------------+
| i1     | i2           |
+--------+--------------+
| 000123 | 000000000123 |
+--------+--------------+
1 row in set (0.00 sec)

Така че е добре, че подвеждащото цяло число "дължина" вече е остаряло и премахнато. Това предизвиква объркване от много години.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. База данни/SQL:Как да съхранявам данни за дължина/ширина?

  2. Грешка при вмъкване на MySQL:ER_BAD_FIELD_ERROR:Неизвестна колона „2525“ в „списък с полета“

  3. Миграция за промяна на стойността по подразбиране за поле и промяна на стойността на всички съществуващи записи на нова стойност по подразбиране само ако има стара стойност по подразбиране.

  4. Как да инсталирате MySQL с phpMyAdmin на Ubuntu 14.04

  5. mysqldump с utf8 не може да експортира правилния низ от емоджи