So verwenden Sie CURRENT_TIMESTAMP in MySQL

So verwenden Sie CURRENT_TIMESTAMP in MySQL

Verwendung von CURRENT_TIMESTAMP

Wie wir alle wissen, kann der Datumstyp von MySQL CURRENT_TIMESTAMP verwenden, um den Standardwert anzugeben. Dies hängt jedoch von der MySQL-Version und dem spezifischen Typ des Datums ab. Nur Versionen nach 5.6 können CURRENT_TIMESTAMP als Standardwert von DATETIME verwenden.

Zum Beispiel:

ALTER TABLE t_user ADD update_time DATETIME DEFAULT CURRENT_TIMESTAMP

In Versionen vor 5.6 tritt der folgende Fehler auf, wenn CURRENT_TIMESTAMP als Standardwert verwendet wird

[Err] 1067 - Ungültiger Standardwert für „update_time“

Vor MySQL 5.6.5 gilt DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP nur für TIMESTAMP, und höchstens ein TIMESTAMP-Feld in einer Tabelle darf diese Funktion verwenden. Ab MySQL 5.6.5 gilt DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP sowohl für TIMESTAMP- als auch für DATETIME-Spalten und für eine unbegrenzte Anzahl von Spalten.

Zeitstempel mit CURRENT_TIMESTAMP meldet einen Fehler

Das Projekt weist den folgenden Fehler auf:

Fehler beim Aktualisieren der Datenbank.

Ursache: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Spalte „createTime“ kann nicht null sein

Das Datenmodell sieht wie folgt aus:

  /* Erstellungszeit darf nicht leer sein */
  createTime Zeitstempel NICHT NULL DEFAULT CURRENT_TIMESTAMP KOMMENTAR 'Erstellungszeit',
  /* Aktualisierungszeit darf nicht leer sein*/
  updateTime Zeitstempel NICHT NULL DEFAULT CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP KOMMENTAR 'Aktualisierungszeit',

Nach einer Reihe von Fehlerbehebungen wurde festgestellt, dass das Problem durch die globale Variable „explicit_defaults_for_timestamp“ in verschiedenen Versionen der MySQL-Datenbank verursacht wurde.

- Zeigen Sie den Standardwert von „explicit_defaults_for_timestamp“ an. SHOW GLOBAL VARIABLES LIKE „explicit_defaults_for_timestamp“; 

-- Ändern Sie den Standardwert von explizite_Standards_for_timestamp SET @@global.explicit_defaults_for_timestamp=OFF;

Wenn der Parameterwert „ON“ ist:

Bildbeschreibung hier einfügen

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:
  • Detaillierte Erklärung der TIMESTAMP-Verwendung in MySQL
  • Analyse der MySql CURRENT_TIMESTAMP-Funktion anhand eines Beispiels
  • Interpretation der Methode zum Festlegen mehrerer Zeitstempel in MySQL
  • MySQL-Datentyp TIMESTAMP

<<:  Detaillierte Erläuterung der Verwendung von var () von CSS3 zum Ändern von SCSS-Variablenwerten zur Laufzeit

>>:  Beispielcode zur Implementierung einer schwebenden Seitenbox basierend auf JS

Artikel empfehlen

Detaillierte Erklärung der MySQL InnoDB-Indexerweiterung

Indexerweiterung: InnoDB erweitert automatisch je...

Front-End-KI-Schnitttipps (Erfahrung)

Das AI-Bildschneiden muss mit PS koordiniert werd...

Unterschiede zwischen MySQL CHAR und VARCHAR beim Speichern und Lesen

Einführung Kennen Sie wirklich den Unterschied zw...

Designtheorie: Lesbarkeit und Verständlichkeit von Texten

<br />Vor nicht allzu langer Zeit habe ich a...

Offlineinstallation von Centos7.2 mysql5.7.18.tar.gz

Aufgrund der Netzwerkisolation kann MySQL nicht m...

Detaillierte Beschreibung von Shallow Copy und Deep Copy in js

Inhaltsverzeichnis 1. js-Speicher 2. Abtretung 3....

Vue implementiert das Bild mit Schaltflächenwechsel

In diesem Artikelbeispiel wird der spezifische Co...

Mehrere Möglichkeiten zum Sichern einer MySql-Datenbank

mysqldump-Tool-Sicherung Sichern Sie die gesamte ...

So starten Sie ein Java-Programm im Docker

Erstellen Sie ein einfaches Spring Boot-Webprojek...

Implementierung der Leistungsoptimierung des Element-Shuttle-Frames

Inhaltsverzeichnis Hintergrund Lösung Neue Fragen...