Mysql
 sql >> Database >  >> RDS >> Mysql

Tipi in MySQL:BigInt(20) vs Int(20)

Vedi http://dev.mysql.com/doc/ refman/8.0/en/tipi-numerici.html

  • INT è un numero intero con segno a quattro byte.

  • BIGINT è un numero intero con segno di otto byte.

Ciascuno di essi non accetta né più né meno valori di quelli che possono essere memorizzati nel rispettivo numero di byte. Ciò significa 2 valori in un INT e 2 valori in un BIGINT .

Il 20 in INT(20) e BIGINT(20) non significa quasi nulla. È un suggerimento per la larghezza del display. Non ha nulla a che fare con l'archiviazione, né con l'intervallo di valori che la colonna accetterà.

In pratica, interessa solo il ZEROFILL opzione:

CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;

+----------------------+
| bar                  |
+----------------------+
| 00000000000000001234 |
+----------------------+

È una comune fonte di confusione per gli utenti MySQL vedere INT(20) e supponiamo che sia un limite di dimensione, qualcosa di analogo a CHAR(20) . Non è così.