Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich im MySQL STRICT-Modus die Fehlermeldung „Feld hat keinen Standardwert“?

Warum erhalte ich im MySQL STRICT-Modus die Fehlermeldung „Feld hat keinen Standardwert“?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 12:40:02854Durchsuche

Why am I getting the

Fehler im MySQL-STRICT-Modus: 1364 „Feld hat keinen Standardwert“

Bei einer kürzlichen Migration von MAMP zu Apache, MySQL und PHP wurden INSERT-Befehle ausgeführt führte plötzlich zu folgendem Fehler:

SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value

Dieses Problem entstand aufgrund einer Änderung im Standardverhalten von MySQL. In MySQL-Version 5.6.13 ist häufig der STRICT-Modus aktiviert, der strengere Regeln für die Datenvalidierung erzwingt. Dadurch können Felder ohne Standardwerte beim Einfügen nicht mehr leer bleiben.

Lösung

Um dieses Problem zu beheben, ist es notwendig, die Einstellung für den MySQL STRICT-Modus zu ändern. Es gibt zwei mögliche Lösungen:

  1. Vorübergehende Änderung:Führen Sie den folgenden Befehl in Ihrer MySQL-Konsole aus:

    SET GLOBAL sql_mode='';

    Dadurch wird STRICT vorübergehend deaktiviert Modus für alle nachfolgenden Abfragen.

  2. Permanente Änderung: Bearbeiten Sie Ihre MySQL-Konfigurationsdatei (my.cnf). Suchen Sie die Einstellung „sql_mode“ und stellen Sie sicher, dass STRICT_ALL_TABLES oder eine andere Option für den strikten Modus nicht vorhanden ist. Wenn Sie sie finden, kommentieren Sie diese Optionen aus oder entfernen Sie sie.

Nachdem Sie eine dieser Änderungen vorgenommen haben, starten Sie den MySQL-Server neu. Die INSERT-Befehle sollten erfolgreich ausgeführt werden, ohne dass der Fehler „Feld hat keinen Standardwert“ auftritt .

Das obige ist der detaillierte Inhalt vonWarum erhalte ich im MySQL STRICT-Modus die Fehlermeldung „Feld hat keinen Standardwert“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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