Se http://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html
-
INT
är ett heltal med fyra byte tecken. -
BIGINT
är ett heltal med tecken på åtta byte.
Var och en accepterar inte fler och inte färre värden än vad som kan lagras i sina respektive antal byte. Det betyder 2 värden i en INT
och 2 värden i en BIGINT
.
De 20 i INT(20)
och BIGINT(20)
betyder nästan ingenting. Det är ett tips om visningsbredd. Det har inget med lagring att göra, inte heller det värdeintervall som kolumnen accepterar.
Praktiskt taget påverkar det bara ZEROFILL
alternativ:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
Det är en vanlig källa till förvirring för MySQL-användare att se INT(20)
och anta att det är en storleksgräns, något som är analogt med CHAR(20)
. Så är inte fallet.