„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' ;
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';
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!