EDYTUJ
Od MySQL 5.6.4 typ danych TIMESTAMP(n)
określa n
(0 do 6) cyfr dziesiętnych precyzji dla ułamków sekund.
Przed MySQL 5.6 MySQL nie obsługiwał ułamków sekund przechowywanych jako część TIMESTAMP
typ danych.
Odniesienie:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
Nie musimy określać modyfikatora długości w TIMESTAMP
. Możemy po prostu określić TIMESTAMP
sam.
Pamiętaj jednak, że pierwszy TIMESTAMP
zdefiniowana w tabeli kolumna podlega automatycznej inicjalizacji i aktualizacji. Na przykład:
create table foo (id int, ts timestamp, val varchar(2));
show create table foo;
CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
)
To, co znajduje się w nawiasach po typie danych, zależy od tego, jaki jest typ danych, ale w przypadku niektórych typów danych jest to modyfikator długości.
W przypadku niektórych typów danych modyfikator długości wpływa na maksymalną długość wartości, które mogą być przechowywane. Na przykład VARCHAR(20)
umożliwia przechowywanie do 20 znaków. I DECIMAL(10,6)
pozwala na wartości numeryczne z czterema cyframi przed kropką dziesiętną i sześć po, oraz efektywnym zakresem od -9999.999999 do 9999.999999.
W przypadku innych typów modyfikator długości nie wpływa na zakres wartości, które można przechowywać. Na przykład INT(4)
i INT(10)
są liczbami całkowitymi i oba mogą przechowywać pełny zakres wartości dozwolonych dla typu danych całkowitych.
To, co ten modyfikator długości robi w tym przypadku, ma jedynie charakter informacyjny. Zasadniczo określa zalecaną szerokość wyświetlania. Klient może wykorzystać to do określenia, ile miejsca zarezerwować w wierszu do wyświetlania wartości z kolumny. Klient nie musi tego robić, ale ta informacja jest dostępna.
EDYTUJ
Modyfikator długości nie jest już akceptowany dla TIMESTAMP
typ danych. (Jeśli używasz naprawdę starej wersji MySQL i zostanie ona zaakceptowana, zostanie zignorowana.)