Se http://dev.mysql.com/doc/ refman/8.0/da/numeric-types.html
-
INT
er et fire-byte-signeret heltal. -
BIGINT
er et otte-byte-signeret heltal.
De accepterer hver især ikke flere og ikke færre værdier, end der kan lagres i deres respektive antal bytes. Det betyder 2 værdier i en INT
og 2 værdier i en BIGINT
.
De 20 i INT(20)
og BIGINT(20)
betyder næsten ingenting. Det er et tip til skærmbredden. Det har intet at gøre med lagring, eller rækken af værdier, som kolonnen vil acceptere.
Praktisk talt påvirker det kun ZEROFILL
mulighed:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
Det er en almindelig kilde til forvirring for MySQL-brugere at se INT(20)
og antag, at det er en størrelsesgrænse, noget analogt med CHAR(20)
. Dette er ikke tilfældet.