Ich erinnere mich, dass ich irgendwo gelesen habe, dass der Datentyp mySQL timestamp automatisch aktualisiert wird, wenn die Zeile aktualisiert wird, stimmt das?
Muss ich Zeitstempel mit Zeitstempel-Datentyp oder mit Bigint zum Beispiel speichern?
NB: Der Zeitstempel, der gespeichert werden muss, wird nicht von mySQL generiert, es ist ein vordefinierter Wert, der mit PHP generiert wird.
Danke.
Eine Spalte vom Typ TIMESTAMP
kann so eingestellt werden, dass sie automatisch mit ON UPDATE CURRENT_TIMESTAMP
in der Spaltendefinition aktualisiert wird.
Dies wird jedoch beim Einfügen eines Datensatzes nicht aufgefüllt. Wie Sie gesagt haben, können Sie einen Zeitstempel in PHP (Format: YYYY-MM-DD HH:MM:SS
) erstellen und einfügen, oder Sie können ein anderes Spaltenattribut von DEFAULT CURRENT_TIMESTAMP
in der Spaltendefinition setzen.
Weitere Informationen: MySQL: TIMESTAMP-Eigenschaften
UPDATE:
Wenn ein Unix-Timestamp-Wert die erforderliche Ausgabe ist, speichern Sie den Wert mit TIMESTAMP
und erhalten Sie dann den Unix-Wert mit:
Um einen Unix-Zeitstempel einzufügen, können Sie FROM_UNIXTIME()
aus dem MySQL-Handbuch:
Standardmäßig wird die erste TIMESTAMP-Spalte in einer Tabelle automatisch auf Datum und Uhrzeit der letzten Operation gesetzt, wenn Sie ihr selbst keinen Wert zuweisen. Sie können auch eine TIMESTAMP-Spalte auf das aktuelle Datum und die aktuelle Uhrzeit setzen, indem Sie ihr einen NULL-Wert zuweisen.
Ich erinnere mich, dass ich irgendwo gelesen habe, dass der Datentyp mySQL timestamp automatisch aktualisiert wird, wenn die Zeile aktualisiert wird, stimmt das?
Ja.
Muss ich Zeitstempel mit Zeitstempel-Datentyp oder mit Bigint zum Beispiel speichern?
Timestamp ist ein Datentyp. Sie verwenden es wie latest_update TIMESTAMP(8)
, wenn Sie die Tabelle erstellen.
Die richtige Antwort lautet int(11)
, da ein Zeitstempel eine große Ganzzahl ist.