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

ReactRouter-Implementierung

ReactRouter-Implementierung ReactRouter ist die K...

Native JS-Kapselung, nahtlose Karussellfunktion

Natives js-gekapseltes nahtloses Karussell-Plug-I...

Die unangemessenen MaxIdleConns von MySQL führen zu kurzen Verbindungen

1 Hintergrund Vor kurzem sind im Online-Geschäft ...

Beispielcode zur Implementierung einer einfachen Suchmaschine mit MySQL

Inhaltsverzeichnis Vorwort Einführung Ngram-Vollt...

Vue3.x verwendet mitt.js für die Komponentenkommunikation

Inhaltsverzeichnis Schnellstart Anwendung Grundpr...

Einführung in die Anwendung der HTML-Tags superscript sup und subscript sub

HTML-Tag: hochgestellt In HTML definiert das <s...

Mit wie vielen Pixeln sollte eine Webseite gestaltet werden?

Viele Webdesigner sind beim Entwurf des Webseitenl...

Spezifische Verwendung des Ausnahmefilters Exceptionfilter in nestjs

Wenn wir über den Ausnahmefilter von Nestjs sprec...

MySQL-Prozesssteuerung: IF()-, IFNULL()-, NULLIF()-, ISNULL()-Funktionen

In MySQL können Sie die Funktionen IF(), IFNULL()...

Verwenden von CSS3 zum Implementieren eines Schriftfarbverlaufs

Beim Verwenden von Animation.css habe ich festges...

Einführung in die UFW-Firewall unter Linux

Werfen wir einen Blick auf ufw (Uncomplicated Fir...