Wenn Sie versuchen, Daten in eine MySQL-Tabelle einzufügen, bei der die Datenlänge der Spalte ihre definierte Breite überschreitet, werden Sie Es wird der Fehler „Fehlercode: 1406. Daten zu lang für Spalte“ angezeigt.
Bedenken Sie Folgendes Beispiel:
CREATE TABLE `TEST` ( `idTEST` INT NOT NULL , `TESTcol` VARCHAR(45) NULL , PRIMARY KEY (`idTEST`) );
Das Einfügen von Daten innerhalb der angegebenen Spaltenlänge funktioniert wie erwartet:
INSERT INTO TEST VALUES ( 1, 'Vikas' );
Der Versuch, Daten einzufügen, die die maximale Spaltenlänge überschreiten, führt jedoch zu folgendem Fehler:
INSERT INTO TEST VALUES ( 2, 'Vikas Kumar Gupta Kratika Shukla Kritika Shukla' );
Dies geschieht, weil MySQL jeden Einfügewert abschneidet, der länger als die angegebene Spalte ist Breite.
Lösung:
Um dieses Problem zu beheben, deaktivieren Sie vorübergehend den strikten Modus von MySQL:
In Ihrer my.ini (Windows) oder my.cnf (Unix)-Datei:
Bearbeiten Sie die Einstellung „sql-mode“, um sie zu entfernen „STRICT_TRANS_TABLES“:
# Set the SQL mode to strict sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Verwenden einer SQL-Abfrage in einem Datenbankverwaltungstool:
Führen Sie die folgende Abfrage aus, um den globalen SQL-Modus auf leer zu setzen:
SET @@global.sql_mode= '';
Wenn der strikte Modus deaktiviert ist, können Sie Daten einfügen, die die Spaltenlänge überschreiten. Seien Sie jedoch vorsichtig, da dies zu Datenkürzungen und Inkonsistenzen führen kann. Setzen Sie diese Lösung daher mit Bedacht ein.
Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1406: Daten zu lang für Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!