Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Festlegen einer Spalte als Zeitstempel in MySql Workbench?

BEARBEITEN

Ab MySQL 5.6.4, Datentyp TIMESTAMP(n) gibt n an (0 bis 6) Dezimalstellen mit Genauigkeit für Sekundenbruchteile.

Vor MySQL 5.6 unterstützte MySQL keine Sekundenbruchteile, die als Teil eines TIMESTAMP gespeichert wurden Datentyp.

Referenz:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html

Wir müssen keinen Längenmodifikator für einen TIMESTAMP angeben . Wir können einfach TIMESTAMP angeben von selbst.

Beachten Sie jedoch, dass der erste TIMESTAMP Spalte, die in der Tabelle definiert ist, wird automatisch initialisiert und aktualisiert. Zum Beispiel:

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
) 

Was in Klammern nach einem Datentyp steht, hängt vom Datentyp ab, aber für einige Datentypen ist es ein Längenmodifikator.

Bei einigen Datentypen wirkt sich der Längenmodifikator auf die maximale Länge von Werten aus, die gespeichert werden können. Beispiel:VARCHAR(20) ermöglicht die Speicherung von bis zu 20 Zeichen. Und DECIMAL(10,6) ermöglicht numerische Werte mit vier Stellen vor dem Dezimalkomma und sechs danach und einem effektiven Bereich von -9999,999999 bis 9999,999999.

Bei anderen Typen wirkt sich der Längenmodifikator nicht auf den Wertebereich aus, der gespeichert werden kann. Beispiel:INT(4) und INT(10) sind beide Integer, und beide können den gesamten zulässigen Wertebereich für den Integer-Datentyp speichern.

Was dieser Längenmodifikator in diesem Fall tut, ist nur informativ. Sie gibt im Wesentlichen eine empfohlene Displaybreite an. Ein Client kann dies nutzen, um zu bestimmen, wie viel Platz in einer Zeile für die Anzeige von Werten aus der Spalte reserviert werden soll. Ein Client muss das nicht tun, aber diese Informationen sind verfügbar.

BEARBEITEN

Ein Längenmodifikator wird für den TIMESTAMP nicht mehr akzeptiert Datentyp. (Wenn Sie eine wirklich alte MySQL-Version verwenden und diese akzeptiert wird, wird sie ignoriert.)