Verwalten mehrerer TIMESTAMP-Spalten mit CURRENT_TIMESTAMP
In MySQL kann die Definition mehrerer TIMESTAMP-Spalten mit CURRENT_TIMESTAMP-Standardwerten zum Fehler „Falsche Tabellendefinition“ führen ; es kann nur eine TIMESTAMP-Spalte mit CURRENT_TIMESTAMP in der DEFAULT- oder ON UPDATE-Klausel geben.“ Um diese Einschränkung zu überwinden, ziehen Sie den folgenden Ansatz in neueren MySQL-Editionen (z. B. 5.6.25) in Betracht:
Lösung:
Ändern Sie die Tabellendefinition wie folgt:
<code class="sql">CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP NOT NULL, CONSTRAINT UPDATE_ON_CHANGE_ts_update FOREIGN KEY (`ts_update`) REFERENCES `msgs` (`ts_create`) ON DELETE SET NULL ON UPDATE CURRENT_TIMESTAMP )</code>
In diesem geänderten Schema:
Mit diesem Ansatz können Sie das gewünschte Verhalten beibehalten und sowohl die Datensatzerstellung als auch die Aktualisierungszeitstempel verfolgen und gleichzeitig den MySQL-Fehler vermeiden.
Das obige ist der detaillierte Inhalt vonWie verwalte ich mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!