Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich beim Hinzufügen einer Spalte in MySQL die Meldung „FEHLER 1067 (42000): Ungültiger Standardwert für ‚created_at''?

Warum erhalte ich beim Hinzufügen einer Spalte in MySQL die Meldung „FEHLER 1067 (42000): Ungültiger Standardwert für ‚created_at''?

Barbara Streisand
Freigeben: 2024-12-11 03:50:10
Original
725 Leute haben es durchsucht

Why Am I Getting

„FEHLER 1067 (42000): Ungültiger Standardwert für ‚created_at‘“ erklärt

Beim Versuch, eine Tabelle durch Hinzufügen einer neuen zu ändern In der Spalte wird möglicherweise die folgende Fehlermeldung angezeigt: „FEHLER 1067 (42000): Ungültiger Standardwert für ‚created_at‘.“ Dieser Fehler erscheint kontraintuitiv, da Sie die Spalte „created_at“ selbst nicht ändern.

Die Grundursache

Das Problem liegt an den MySQL-Konfigurationseinstellungen, die als SQL-Modi bekannt sind. Insbesondere die SQL-Modi „NO_ZERO_IN_DATE“ und „NO_ZERO_DATE“. Diese Modi schränken die Standardwerte für Datum und Zeitstempel so ein, dass sie sowohl eine Datums- als auch eine Zeitkomponente enthalten. Werte mit der Zeitkomponente „00:00:00“ sind nicht zulässig.

Wenn Sie eine neue Tabelle erstellen, erbt diese die SQL-Modi zum Zeitpunkt der Erstellung aktiv. Wenn diese SQL-Modi aktiviert sind, wirkt sich dies auf die Standardwerte für Zeitstempelspalten wie „created_at“ aus. Beim Hinzufügen einer neuen Spalte zu einer Tabelle mit aktivierten SQL-Modi wird versucht, den vorhandenen Standardwert für „created_at“ zu überschreiben, was nicht zulässig ist.

Auflösung

Auflösen Um dieses Problem zu beheben, können Sie die aktiven SQL-Modi identifizieren, indem Sie den folgenden Befehl ausführen:

show variables like 'sql_mode' ; 
Nach dem Login kopieren

Wenn „NO_ZERO_IN_DATE“ und „NO_ZERO_DATE“ SQL-Modi sind vorhanden. Sie können sie deaktivieren, indem Sie den SQL-Modus so einstellen, dass diese Einschränkungen entfernt werden. Sie können dies global als Root-Benutzer mit dem folgenden Befehl tun:

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Nach dem Login kopieren

Nachdem Sie die erforderlichen Änderungen am SQL-Modus vorgenommen haben, sollten Sie in der Lage sein, die neue Spalte hinzuzufügen, ohne dass der Fehler auftritt.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Hinzufügen einer Spalte in MySQL die Meldung „FEHLER 1067 (42000): Ungültiger Standardwert für ‚created_at''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage