Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich MySQL-FEHLER 1067: Ungültiger Standardwert für „created_at'?

Warum erhalte ich MySQL-FEHLER 1067: Ungültiger Standardwert für „created_at'?

Patricia Arquette
Freigeben: 2024-12-04 08:40:11
Original
881 Leute haben es durchsucht

Why Am I Getting MySQL ERROR 1067: Invalid Default Value for 'created_at'?

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:

  1. Aktuell überprüfen sql_modes:

    show variables like 'sql_mode' ; 
    Nach dem Login kopieren
  2. 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';
      Nach dem Login kopieren
    • 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';
      Nach dem Login kopieren
  3. Spalte erneut hinzufügen:

    ALTER TABLE investments ADD bank TEXT;
    Nach dem Login kopieren

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!

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