Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in MySQL einen „Ungültigen Standardwert für das Feld „create_date'' und wie kann ich das beheben?

Warum erhalte ich in MySQL einen „Ungültigen Standardwert für das Feld „create_date'' und wie kann ich das beheben?

DDD
DDDOriginal
2024-10-26 22:41:30490Durchsuche

Why Am I Getting

"Ungültiger Standardwert für Feld 'create_date': Grundlegendes zum SQL-Modus NO_ZERO_DATE"

In einer aktuellen SQL-Erstellungsanweisung tritt der Fehler auf „‚Ungültiger Standardwert für ‚create_date‘“ für das folgende SQL:

<code class="sql">CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) </code>

Um diesen Fehler zu beheben, ist es wichtig, den MySQL SQL-Modus zu verstehen, insbesondere die Einstellung NO_ZERO_DATE. Diese Einstellung verbietet die Verwendung von „0000-00-00“ als gültiges Datum im strengen Modus. Dies liegt daran, dass SQL boolesche Werte als Zahlen behandelt (z. B. TRUE = 1, FALSE = 0) und Datumsangaben als Ganzzahlen speichert, die die Anzahl der Tage seit einem Referenzpunkt darstellen. Folglich steht die Verwendung von „0000-00-00“ im Konflikt mit dem für boolesche Werte verwendeten Wert „0“.

Um dieses Problem zu beheben, ziehen Sie die folgenden Optionen in Betracht:

  • Deaktivieren Sie den NO_ZERO_DATE-Modus: Fügen Sie in Ihre SQL-Anweisung die Anweisung 'SET SQL_MODE = "NO_ZERO_IN_DATE";' ein. bevor Sie die Tabelle erstellen. Dadurch wird der NO_ZERO_DATE-Modus vorübergehend deaktiviert, sodass Sie „0000-00-00“ als Standard für das Erstellungsdatum definieren können.
  • Verwenden Sie einen gültigen Standardwert: Ersetzen Sie „0000-00-00 00“. :00:00‘ mit einem gültigen Standarddatum in der SQL-Anweisung, z. B. ‚CURRENT_TIMESTAMP‘ oder NULL, je nach gewünschtem Verhalten.
  • Verwenden Sie die IGNORE-Option: Wenn Sie es unbedingt benötigen Um „0000-00-00 00:00:00“ zu verwenden, fügen Sie die Option IGNORE in die SQL-Anweisung ein. Dies kann jedoch zu potenziellen Dateninkonsistenzen führen und wird grundsätzlich nicht empfohlen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL einen „Ungültigen Standardwert für das Feld „create_date'' und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn