Argument typów całkowitych MySQL nie ma wpływu na ich przechowywania lub zakresu wartości obsługiwane przez każdy typ danych.
argument odnosi się tylko do wyświetlania szerokości, które mogą być używane przez aplikacje, jak wspomina Jonathan Fingland. także jest to, gdy używany w połączeniu z opcją ZEROFILL
:
CREATE TABLE foo (
i INT(3) ZEROFILL,
j INT(6) ZEROFILL,
k INT(11) ZEROFILL
);
INSERT INTO foo (i, j, k) VALUES (123, 456, 789);
SELECT * FROM foo;
+------+--------+-------------+
| i | j | k |
+------+--------+-------------+
| 123 | 000456 | 00000000789 |
+------+--------+-------------+
Zobacz jak ZEROFILL
pilnuje danych jest zero-wyściełane przynajmniej liczby cyfr równą liczbę całkowitą typu argumentu.
Bez danych ZEROFILL
dane są wypełniane spacjami, ale ponieważ spacje są często usuwane, trudniej jest zauważyć tę różnicę.
Jaki wpływ ma to na twój kod PHP? Żaden. Jeśli potrzebujesz wyprowadzać dane kolumnowe, wartości spacji lub zerowych padów, to bardziej elastyczne jest użycie sprintf()
,
Co powinienem dodać, dodając BIGINT(), nic nie jest opcją, prawda? Wybierz losową liczbę? 42? – Citizen
Nie potrzebujesz nawet nawiasów; możesz po prostu powiedzieć "BIGINT". –
Jeden darmowy Internet dla ciebie, sir! – Citizen