Wann wird ein Zeitstempel (automatisch) aktualisiert?
Wenn ich eine Spalte in einer Tabelle vom Typ TIMESTAMP
und hat als Standard: CURRENT_TIMESTAMP hat diese Spalte aktualisiert, um den aktuellen timestamp, wenn ich den Wert aktualisieren
der alle anderen Spalte in der gleichen Zeile?
Es scheint, dass es nicht an aber ich bin nicht sicher, ob dies ist, was passieren soll.
Ich kann nicht verstehen, was das bedeutet (aus der MySQL-Dokumentation):
Wenn die Spalte wird automatisch aktualisiert, es wird automatisch aktualisiert, um die
aktuellen timestamp, wenn der Wert einer anderen Spalte in der Zeile ist
geändert von seinem aktuellen Wert. Die Spalte erhalten bleibt, wenn alle
die anderen Spalten werden die aktuellen Werte. Um zu verhindern, dass die Spalte
aktualisiert, wenn andere Spalten ändern, explizit den Wert seiner
aktuellen Wert. Die Spalte aktualisieren, auch wenn die anderen Spalten nicht
ändern Sie, explizit den Wert den Wert den es haben soll]Zwei
InformationsquelleAutor der Frage Jim | 2013-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie den Befehl
SHOW CREATE TABLE whatever
Dann schauen Sie sich die definition der Tabelle.
Ist es wohl eine Zeile wie diese
in es.
DEFAULT CURRENT_TIMESTAMP
bedeutet, dass jederINSERT
ohne eine explizite Zeitstempel-Einstellung verwendet die aktuelle Uhrzeit. EbensoON UPDATE CURRENT_TIMESTAMP
bedeutet, dass jedes update ohne eine explizite Zeitstempel Ergebnisse in einem update auf die aktuelle timestamp-Wert.Können Sie Steuern das Standardverhalten beim erstellen Ihrer Tabelle.
Oder, wenn die timestamp-Spalte war nicht korrekt erstellt, in der erste Ort, können Sie es ändern.
Dadurch wird sowohl die INSERT-und UPDATE-Operationen auf der Tabelle automatisch zu aktualisieren Sie Ihre timestamp-Spalte. Wenn Sie aktualisieren möchten
whatevertable
ohne änderung der Zeitstempel, das ist,dann müssen Sie die Ausgabe dieser Art von update.
Und, dies funktioniert mit
TIMESTAMP
Spalten, nichtDATETIME
oderDATE
Spalten. Da die Spalten sindTIMESTAMP
s, Zeitzonen berücksichtigt werden: auf einem korrekt konfigurierten server-Maschine, diese Werte sind immer in UTC gespeichert und übersetzt in die lokale Zeit auf Abruf.InformationsquelleAutor der Antwort O. Jones
Ich glaube, Sie haben zu definieren, die timestamp-Spalte wie diese
Sehen hier
InformationsquelleAutor der Antwort juergen d
Fügen Sie einen trigger in der Datenbank:
Das Passwort geändert, die Zeit wird aktualisiert, nur wenn Spalte password geändert.
InformationsquelleAutor der Antwort Sibin John Mattappallil
Hinzufügen, wo Sie zu finden
UPDATE CURRENT_TIMESTAMP
da für neue Leute ist das ein Durcheinander.Meisten Menschen mit phpmyadmin oder etwas ähnliches.
Default value select CURRENT_TIMESTAMP
Attribute (ein anderes Dropdown) wählen Sie die UPDATE CURRENT_TIMESTAMP
InformationsquelleAutor der Antwort BrinkDaDrink
Eine automatische Aktualisierung Spalte wird automatisch aktualisiert, um den aktuellen Zeitstempel, wenn der Wert einer anderen Spalte in der Zeile geändert wird, von seinem aktuellen Wert. Eine automatische Aktualisierung Spalte erhalten bleibt, wenn alle anderen Spalten werden die aktuellen Werte.
Um es zu erklären, stellen wir uns vor, Sie haben nur eine Zeile:
Nun, wenn Sie führen Sie die folgenden update-Spalte:
wird es nicht ändern Sie den Wert von updated_at, da der Preis den Wert nicht wirklich geändert (es war schon 2).
Aber wenn Sie eine weitere Zeile mit Preis anderen Wert als 2, dann ist die updated_at-Wert der Zeile (mit Preis <> 3) aktualisiert, CURRENT_TIMESTAMP.
InformationsquelleAutor der Antwort Alexander