REDIGERA
Från och med MySQL 5.6.4, datatyp TIMESTAMP(n)
anger n
(0 upp till 6) decimalsiffror för precision för bråksekunder.
Före MySQL 5.6 stödde MySQL inte bråkdelar av sekunder lagrade som en del av en TIMESTAMP
datatyp.
Referens:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
Vi behöver inte ange en längdmodifierare på en TIMESTAMP
. Vi kan bara ange TIMESTAMP
av sig själv.
Men tänk på att den första TIMESTAMP
kolumnen som definieras i tabellen är föremål för automatisk initiering och uppdatering. Till exempel:
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
)
Vad som går i parens efter en datatyp beror på vad datatypen är, men för vissa datatyper är det en längdmodifierare.
För vissa datatyper påverkar längdmodifieraren den maximala längden på värden som kan lagras. Till exempel, VARCHAR(20)
tillåter att upp till 20 tecken lagras. Och DECIMAL(10,6)
tillåter numeriska värden med fyra siffror före decimalkomma och sex efter, och ett effektivt intervall på -9999,999999 till 9999,999999.
För andra typer påverkar inte längdmodifieraren intervallet av värden som kan lagras. Till exempel INT(4)
och INT(10)
är båda heltal, och båda kan lagra hela intervallet av värden för tillåtna för heltalsdatatypen.
Vad den längdmodifieraren gör i så fall är bara informativt. Den anger i huvudsak en rekommenderad skärmbredd. En klient kan använda det för att bestämma hur mycket utrymme som ska reserveras på en rad för att visa värden från kolumnen. En klient behöver inte göra det, men den informationen är tillgänglig.
REDIGERA
En längdmodifierare accepteras inte längre för TIMESTAMP
data typ. (Om du kör en riktigt gammal version av MySQL och den är godkänd kommer den att ignoreras.)