Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Typen in MySQL:BigInt(20) vs. Int(20)

Siehe http://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html

  • INT ist eine 4-Byte-Ganzzahl mit Vorzeichen.

  • BIGINT ist eine 8-Byte-Ganzzahl mit Vorzeichen.

Sie akzeptieren jeweils nicht mehr und nicht weniger Werte, als in ihrer jeweiligen Anzahl von Bytes gespeichert werden können. Das bedeutet 2 Werte in einem INT und 2 Werte in einem BIGINT .

Die 20 in INT(20) und BIGINT(20) bedeutet fast nichts. Es ist ein Hinweis für die Anzeigebreite. Es hat nichts mit der Speicherung oder dem Wertebereich zu tun, den die Spalte akzeptiert.

Praktisch betrifft es nur den ZEROFILL Möglichkeit:

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

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

Es ist eine häufige Quelle der Verwirrung für MySQL-Benutzer, INT(20) zu sehen und nehme an, es ist eine Größenbeschränkung, etwas Analoges zu CHAR(20) . Dies ist nicht der Fall.