2017-01-15 2 views
0

diese Fehler bei dem Versuch, eine Tabelle mit einem Standardwert für eine „_loaded_at“ Spalte zu erstellen: für ‚_loaded_at‘MemSQL - Wie erstellt man einen Spaltenstandard mit dem aktuellen Datum?

Das funktioniert nicht ungültig Standardwert:

ERROR 1067 (42000)

CREATE TABLE json01(
id BIGINT PRIMARY KEY AUTO_INCREMENT 
, _loaded_at DATETIME DEFAULT NOW() 
, properties JSON NOT NULL 
, SHARD KEY (id) 
); 

Während dies funktioniert:

CREATE TABLE json01(
id BIGINT PRIMARY KEY AUTO_INCREMENT 
, _loaded_at DATETIME DEFAULT '1970-01-01 00:00:01' 
, properties JSON NOT NULL 
, SHARD KEY (id) 
); 

ich auch mit der Funktion UTC_TIMESTAMP() versucht. In der Hoffnung, dass es eine Möglichkeit gibt, eine Funktion als Standard anzugeben, da dies ziemlich Standardfunktionalität ist. Vielen Dank für deine Hilfe!

Antwort

1

Wie wäre es angesichts so etwas wie:

_loaded_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

?

+0

Ja, von allen Datums- und Uhrzeit-Datentypen, die memsql nur unterstützt, kann TIMESTAMP standardmäßig den aktuellen Zeitstempel beim Einfügen verwenden (DATETIME kann nicht). –

+0

Das hat funktioniert! Vielen Dank! –

Verwandte Themen