Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

MySQLs current_timestamp-Falle

Einen Fehler melden

Falsche Tabellendefinition; es kann nur eine TIMESTAMP-Spalte mit CURRENT_TIMESTAMP in der DEFAULT- oder ON UPDATE-Klausel geben

Die Antworten im Internet lauten grundsätzlich wie folgt, es gibt jedoch keine spezifische Lösung

Der Grund für die Lösung ist, dass, wenn Sie einen Zeitstempel auf updatecurrent_timestamp setzen, andere Zeitstempelfelder explizit Standardwerte setzen müssen

Wenn Sie jedoch zwei Zeitstempelfelder haben, aber nur das erste auf current_timestamp setzen und das zweite keinen Standardwert hat, kann MySQL die Tabelle erfolgreich erstellen, aber nicht umgekehrt ...

Meine Lösung

Deinstallieren Sie die aktuelle niedrigere Version von MySQL und installieren Sie MySQL Version 5.6 oder höher. MySQL Version 5.7 wird empfohlen, da sie relativ stabil ist.

mysql5.5.23 current_timestamp Problem

Heute habe ich eine neue Tabelle mit zwei Feldern erstellt: Erstellungszeit und Aktualisierungszeit. Beide Standardwerte sind die aktuelle Zeit. Beim Ausführen von SQL tritt ein Fehler auf.

FEHLER 1293 (HY000): Falsche Tabellendefinition; es kann nur eine TIMESTAMP-Spalte mit CURRENT_TIMESTAMP in der DEFAULT- oder ON UPDATE-Klausel geben

Ich habe dieses SQL in anderen Projekten verwendet und es funktioniert einwandfrei. Warum kann es heute nicht erfolgreich ausgeführt werden? Nachdem ich bestätigt hatte, dass das SQL keine Syntaxfehler enthielt, überprüfte ich die Informationen online. Es stellt sich heraus, dass MySQL 5.5 nur ein Zeitfeld in einer Tabelle mit CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP unterstützt. In 5.6 werden jedoch mehrere unterstützt.

Originalbeschreibung

Es ist nicht möglich, den aktuellen Zeitstempel als Standardwert für eine Spalte und als automatisch aktualisierten Wert für eine andere Spalte festzulegen.

Lösung

Entfernen der Standarderstellungszeit

Überprüfen Sie die MySQL-Versionsnummer mit dem Statusbefehl

這里寫圖片描述

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Lösung für MySQL-Fehler TIMESTAMP-Spalte mit CURRENT_TIMESTAMP
  • Analyse der MySql CURRENT_TIMESTAMP-Funktion anhand eines Beispiels
  • Detaillierte Erklärung der TIMESTAMP-Verwendung in MySQL

<<:  So verhindern Sie, dass die Bildlaufleiste die Seitenbreite beeinflusst, wenn die Bildlaufleiste auf der Seite angezeigt wird

>>:  CSS-Animation kombiniert mit SVG zur Erzeugung eines Energieflusseffekts

Artikel empfehlen

5 Möglichkeiten, Docker-Container auf andere Server zu migrieren

Migration ist in vielen Fällen unvermeidlich. Har...

Wie stelle ich Tomcat als automatisch gestarteten Dienst ein? Der schnellste Weg

Stellen Sie Tomcat so ein, dass der Dienst automa...

Was bedeutet das n nach int(n) in MySQL?

Sie wissen vielleicht bereits, dass die Länge 1 v...

Ein Artikel zum Verständnis der Verwendung von Proxys in JavaScript

Inhaltsverzeichnis Was ist ein Agent Grundkenntni...

Umfassendes Verständnis der Node-Ereignisschleife

Inhaltsverzeichnis Knoten-Ereignisschleife Ereign...

Tutorial zur Konfiguration des Nginx/Httpd-Reverseproxys für Tomcat

Im vorherigen Blog erfuhren wir die Verwendung un...

Details zum Vue Page Stack Manager

Inhaltsverzeichnis 2. Bewährte Methoden 2.1 Am Le...

Tomcat verwendet Thread-Pool zur Verarbeitung gleichzeitiger Remote-Anfragen

Wenn wir verstehen, wie Tomcat gleichzeitige Anfr...