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

Abfrage mit zwei Zeitstempeln funktioniert nicht

Der TIMESTAMP ist eigentlich ähnlich ein DATETIME, aber der erste TIMESTAMP, den Sie deklarieren, wird automatisch initialisiert:

http://dev.mysql.com/doc/refman /5.0/en/timestamp-initialization.html

Wenn Sie also TIMESTAMP zum ersten Mal ohne Attribute schreiben, konvertiert MySQL es intern und fügt "DEFAULT CURRENT_TIMESTAMP" hinzu. Wenn MySQL auf den zweiten TIMESTAMP stößt, in dem Sie explizit CURRENT_TIMESTAMP setzen, tritt ein Konflikt auf.

Wenn Sie in der ersten Zeile jedoch CURRENT_TIMESTAMP definieren, ist dies überflüssig - und da Sie in der zweiten Zeile nichts angeben, wird der zweiten kein Standardwert zugewiesen und es tritt kein Konflikt auf.

Aus dem obigen Link „Es muss nicht die erste TIMESTAMP-Spalte in einer Tabelle sein, die automatisch initialisiert oder auf den aktuellen Zeitstempel aktualisiert wird. Um jedoch die automatische Initialisierung oder Aktualisierung für eine andere TIMESTAMP-Spalte anzugeben, müssen Sie die automatischen Eigenschaften für die unterdrücken erste."