Heim > Datenbank > MySQL-Tutorial > Warum führt das Hinzufügen einer Spalte in MySQL zu einem Fehler „Ungültiger Standardwert für ‚created_at''?

Warum führt das Hinzufügen einer Spalte in MySQL zu einem Fehler „Ungültiger Standardwert für ‚created_at''?

DDD
Freigeben: 2024-12-02 11:48:10
Original
906 Leute haben es durchsucht

Why Does Adding a Column Result in an

Ungültiger Standardwert für Created_At

Problem:

Beim Versuch, eine Tabelle zu ändern um Beim Hinzufügen einer neuen Spalte tritt ein Fehler auf:

ERROR 1067 (42000): Invalid default value for 'created_at'
Nach dem Login kopieren

obwohl keine Änderungen vorgenommen wurden Zeitstempelspalten.

Lösung:

Der Fehler stammt von sql_modes. So beheben Sie das Problem:

  1. Überprüfen Sie die SQL-Modi:
show variables like 'sql_mode' ;
Nach dem Login kopieren
  1. Deaktivieren Sie problematische Modi:

Entfernen Sie die folgenden Modi aus sql_mode:

NO_ZERO_IN_DATE
NO_ZERO_DATE
Nach dem Login kopieren

Diese Modi sind standardmäßig in neueren MySQL-Versionen vorhanden.

Globale Einstellung:

Für eine systemweite Änderung: Führen Sie Folgendes als Root aus:

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

Zusätzlich Hinweise:

  • Die neue Spalte kann jetzt hinzugefügt werden, ohne den Fehler auszulösen.
  • Wenn Sie den Standardwert NOT NULL für „created_at“ verwenden möchten, können Sie ihn explizit angeben :
ALTER TABLE investments ADD bank TEXT DEFAULT NOT NULL;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum führt das Hinzufügen einer Spalte in MySQL zu einem Fehler „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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage