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

Tutorial zur Installation von MySQL 8.0.18 unter Windows (Community Edition)

In diesem Artikel wird kurz die Installation von ...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Zusammenfassung des fragmentierten Wissens zum Docker-Management

Inhaltsverzeichnis 1. Übersicht 2. Anwendungsbeis...

Eine kurze Erläuterung des Sperrbereichs der MySQL-Next-Key-Sperre

Vorwort Eines Tages wurde ich plötzlich nach der ...

Implementierung der Docker Compose-Mehrcontainerbereitstellung

Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....

Prinzip und Anwendung der MySQL-Verbindungsabfrage

Überblick Eine der leistungsstärksten Funktionen ...

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

js-Entwicklungs-Plugin zum Erzielen eines Tab-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Lösung für „Keine Eingabedatei angegeben“ in nginx+php

Heute ist in meiner lokalen Entwicklungsumgebung ...

Ein kurzes Verständnis der relevanten Sperren in MySQL

Dieser Artikel soll Ihnen vor allem dabei helfen,...