BEWERKEN
Vanaf MySQL 5.6.4, datatype TIMESTAMP(n)
specificeert n
(0 tot 6) decimale cijfers van precisie voor fractionele seconden.
Vóór MySQL 5.6 bood MySQL geen ondersteuning voor fractionele seconden die werden opgeslagen als onderdeel van een TIMESTAMP
gegevenstype.
Referentie:https://dev.mysql.com/doc /refman/5.6/nl/fractionele-seconden.html
We hoeven geen lengtemodifier op te geven voor een TIMESTAMP
. We kunnen gewoon TIMESTAMP
specificeren vanzelf.
Maar houd er rekening mee dat de eerste TIMESTAMP
kolom gedefinieerd in de tabel is onderhevig aan automatische initialisatie en update. Bijvoorbeeld:
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
)
Wat tussen haakjes staat na een datatype hangt af van wat het datatype is, maar voor sommige datatypes is het een lengtemodifier.
Voor sommige gegevenstypen heeft de lengtemodifier invloed op de maximale lengte van waarden die kunnen worden opgeslagen. Bijvoorbeeld VARCHAR(20)
kunnen maximaal 20 tekens worden opgeslagen. En DECIMAL(10,6)
maakt numerieke waarden mogelijk met vier cijfers voor de komma en zes achter, en een effectief bereik van -9999.999999 tot 9999.999999.
Voor andere typen heeft de lengtemodifier geen invloed op het bereik van waarden die kunnen worden opgeslagen. Bijvoorbeeld INT(4)
en INT(10)
zijn beide integer, en beide kunnen het volledige bereik van waarden opslaan voor toegestaan voor het datatype integer.
Wat die lengtemodifier in dat geval doet, is slechts informatief. Het specificeert in wezen een aanbevolen weergavebreedte. Een klant kan daar gebruik van maken om te bepalen hoeveel ruimte op een rij moet worden gereserveerd voor het weergeven van waarden uit de kolom. Een klant hoeft dat niet te doen, maar die informatie is wel beschikbaar.
BEWERKEN
Een lengtemodifier wordt niet langer geaccepteerd voor de TIMESTAMP
data type. (Als u een echt oude versie van MySQL gebruikt en deze wordt geaccepteerd, wordt deze genegeerd.)