2016-04-25 2 views
0

Ich habe eine MySQL Tabelle, wo I Aufzeichnungs Token Erstellungszeiten bin und ich möchte das Äquivalent dieses Postgres Konstrukt erzeugen:eine ganze Zahl Standardfeldwert Erstellen von jetzt enthält Epoche()

token_start_times INTEGER DEFAULT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) 

MySQL bietet unix_timestamp (now()) aber es gibt einen timestamp Wert zurück und nicht einen ganzzahligen Wert.

Ich habe versucht, diese

token_start_times INTEGER DEFAULT timestamp(now()) 

aber MySQL beschwert sich über die Syntax. Ich lese das post, aber es beantwortet meine Frage nicht.

+2

Ein Zeitstempel ** ist ** eine Ganzzahl. Sie können Funktionsaufrufe jedoch nicht in die Option 'DEFAULT' setzen. – Barmar

+0

Der Funktionsaufruf war ein Hail Mary Pass. Ich habe die Dokumentation durchgesehen und ich habe keinen Wert gesehen, den ich mit Extract isolieren könnte. Möglicherweise muss ich die Funktionalität umgestalten und in den Code verschieben. –

+0

Mit all der Kraft und Flexibilität, die hinter 'DATETIME' und' TIMESTAMP' steckt, warum wollen Sie eine einfache 'INT'? –

Antwort

0

versuchen dies den Wert als ganze Zahl zu erhalten:

SELECT now()+0; 
+1

In seiner Frage geht es darum, dass dies der Standardwert einer Spalte ist und nicht, wie sie ausgewählt wird. – Barmar

0

Es scheint die einzige Möglichkeit zu tun, was ich will mit einem AFTER INSERT-Trigger zu tun ist. Ich bevorzuge es, keine Trigger zu verwenden, da dies die Komplexität der Entwicklungsumgebung erhöht. Für weitere Details siehe dieses post von Ike Walker.

Verwandte Themen