Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL 8 ignoruje długości całkowite

Jest to zmiana udokumentowana w Informacje o wydaniu MySQL 8.0.19 :

„Długość” kolumny liczb całkowitych nic nie znaczy. Kolumna int(11) jest tym samym co int(2) lub int(40) . Wszystkie są 32-bitowymi liczbami całkowitymi o stałym rozmiarze. Obsługują tę samą minimalną i maksymalną wartość.

„Długość” kolumn liczb całkowitych przez lata była mylącą cechą MySQL. To tylko wskazówka, która wpływa na szerokość wyświetlacza, a nie na pamięć czy zakres wartości. Praktycznie ma to znaczenie tylko wtedy, gdy używasz ZEROFILL opcja.

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)

Dobrze więc, że wprowadzająca w błąd „długość” jest teraz przestarzała i usunięta. Od wielu lat powoduje zamieszanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń wszystkie wiersze z wyjątkiem pierwszego N z tabeli posiadającej jedną kolumnę

  2. Zabezpieczanie zdalnego połączenia mysql

  3. Jak zmienić katalog danych MySQL?

  4. Jak uzyskać rozmiar tabeli w MySQL?

  5. Nie można znaleźć klasy [org.springframework.orm.hibernate5.LocalSessionFactoryBean] dla ziarna o nazwie „hibernate5AnnotatedSessionFactory”