MySQL: Unterstützung mehrerer TIMESTAMP-Felder mit CURRENT_TIMESTAMP
In der MySQL-Dokumentation heißt es, dass eine Tabelle nur eine TIMESTAMP-Spalte mit dem CURRENT_TIMESTAMP-Wert enthalten kann entweder die DEFAULT- oder ON UPDATE-Klausel. Dies kann einschränkend sein, wenn Sie sowohl die Erstellungs- als auch die Aktualisierungszeitstempel eines Datensatzes verfolgen möchten.
Fehlerbehandlung
Wenn Sie versuchen, eine Tabelle mit mehr als einem zu erstellen Wenn Sie die Spalte TIMESTAMP mit CURRENT_TIMESTAMP verwenden, wird ein Fehler wie der folgende auftreten:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Lösung
Neueste Versionen von MySQL (5.6.25 und höher) haben dieses Problem behoben Einschränkung. Sie können jetzt Tabellen mit mehreren TIMESTAMP-Spalten definieren, jede mit ihrem eigenen CURRENT_TIMESTAMP-Verhalten. Hier ist ein Beispiel:
<code class="sql">CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );</code>
Mit dieser aktualisierten Syntax werden sowohl die Spalten ts_create als auch ts_update automatisch auf den aktuellen Zeitstempel gesetzt, wenn ein neuer Datensatz eingefügt oder ein vorhandener Datensatz aktualisiert wird.
Das obige ist der detaillierte Inhalt vonWie implementiert man mehrere TIMESTAMP-Felder mit CURRENT_TIMESTAMP in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!