Fehlerbehebung bei MySQL-FEHLER 1067: Ungültiger Standardwert für „created_at“ beim Hinzufügen einer neuen Spalte
Versuch, eine Tabelle durch Hinzufügen einer neuen zu ändern Spalte kann zu dem Fehler „FEHLER 1067 (42000): Ungültiger Standardwert für“ führen 'erstellt_at'". Dieser Fehler tritt häufig auf, wenn Zeitstempelspalten geändert werden. Es kann jedoch auch beim Hinzufügen von Nicht-Zeitstempel-Spalten auftreten.
Ursache:
Der Fehler wird durch die sql_modes-Einstellungen von MySQL verursacht. Insbesondere verhindern die Modi „NO_ZERO_IN_DATE“ und „NO_ZERO_DATE“, dass die Standardzeitstempelwerte „0000-00-00“ und „00:00:00“ in den Spalten „created_at“ und „update_at“ gespeichert werden.
Lösung :
Um den Fehler zu beheben, entfernen Sie das Modi „NO_ZERO_IN_DATE“ und „NO_ZERO_DATE“ aus der sql_modes-Einstellung.
Schritte:
Aktuell überprüfen sql_modes:
show variables like 'sql_mode' ;
Anstößige Modi entfernen:
Modi für die aktuelle Sitzung vorübergehend deaktivieren :
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Stellen Sie die globalen Modi ein dauerhaft:
SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Spalte erneut hinzufügen:
ALTER TABLE investments ADD bank TEXT;
Hinweis:
Der standardmäßige sql_mode in neueren Versionen von MySQL umfasst die Modi „NO_ZERO_IN_DATE“ und „NO_ZERO_DATE“. Daher ist es wichtig, die sql_modes-Einstellung regelmäßig zu überprüfen und die erforderlichen Anpassungen vorzunehmen, wenn dieser Fehler auftritt.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich MySQL-FEHLER 1067: Ungültiger Standardwert für „created_at'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!