Fix: Daten werden wegen eines Spaltenfehlers in MySQL abgeschnitten

Mehvish Ashiq 20 Juni 2023
Fix: Daten werden wegen eines Spaltenfehlers in MySQL abgeschnitten

Dieser Artikel zeigt die möglichen Gründe und Lösungen für einen Fehler, der besagt, dass Daten für eine Spalte abgeschnitten werden in MySQL.

Beheben Sie den Fehler Daten werden für eine Spalte abgeschnitten in MySQL

Hier werden wir die möglichen Gründe und Lösungen untersuchen, um einen Fehler zu beseitigen, der besagt, dass MySQL Daten für eine Spalte abgeschnitten sind.

Daten sind zu groß

Es gibt einige Szenarien, in denen wir die Daten aus einer Datei laden müssen, anstatt sie manuell in die MySQL-Tabelle einzufügen. Während des Ladens kann der Fehler Daten für eine Spalte 'columnName' in Zeile # abgeschnitten auftreten. Warum?

Dies liegt daran, dass die angegebenen Daten für einen Datentyp der Spalte in der MySQL-Tabelle zu groß erscheinen. Sie haben beispielsweise eine Tabelle, in der ein Wert-Attribut vom Typ text ist, das nur 65.000 Zeichen der bereitgestellten Daten aufnehmen kann.

Sie erhalten diesen Fehler, wenn Sie Daten für die Spalte Wert einfügen, die 65 KB überschreiten.

Um dieses Problem zu lösen, müssen Sie den Typ ändern, der mehr Daten aufnehmen kann, z. B. MEDIUMTEXT oder LONGTEXT, der 16 MB und 4 GB aufnehmen kann. Einige Optimierungstipps finden Sie auch hier.

Wir können die Daten auch mit SET ANSI_WARNINGS OFF abschneiden und die Datensätze unter Berücksichtigung der maximalen Länge des Datentyps der Spalte wieder einfügen.

Es werden ungültige Daten übergeben

Der Error Code: 1265. Data truncated for column 'a' at row 1 tritt auch in MySQL auf, wenn wir versuchen, ungültige Daten einzufügen.

Zum Beispiel haben wir eine Tabelle, in der das Feld Preis vom Typ float ist und die NULL-Werte akzeptiert. Siehe Folgendes:

#create a table named `prices`
CREATE TABLE prices (ID INT NOT NULL, price FLOAT NULL);
#insert the first record
INSERT prices VALUES (1, '');

Hier fügen wir eine leere Zeichenfolge in die Spalte Preis ein, einen float-Typ, der NULL-Werte akzeptiert. Denken Sie daran, dass NULL und '' nicht dasselbe sind.

Wenn wir jedoch versuchen, eine leere Zeichenfolge in eine Spalte einzufügen, die NULL-Werte enthält, würde dies den Error Code: 1265. Data truncated for column 'a' at row 1 generieren. Die einfachste Lösung für dieses Problem besteht darin, den korrekten Wert des richtigen Datentyps zu übergeben, wie es die jeweilige Spalte der Tabelle Preis erfordert.

Wir können es lösen, indem wir explizit die NULL-Werte anstelle eines leeren Strings ('') angeben oder die Werte für diese bestimmte Spalte nicht einmal in die INSERT-Anweisung schreiben. Sehen Sie sich das folgende Snippet unter Berücksichtigung unseres Beispiels an.

INSERT prices VALUES (1, NULL); #insert null explicitly
INSERT prices (ID) VALUES (2); #don't specify values for `price` column

Falsches Abschlusszeichen

Wenn wir jede Zeile manuell in die MySQL-Tabelle einfügen, geht alles gut. Der Fehler tritt auf, wenn wir versuchen, mehr als eine Zeile gleichzeitig zu laden und das abschließende Zeichen nicht richtig erhalten.

Um dies zu lösen, müssen wir das Abschlusszeichen der Datei überprüfen und im LOAD-Befehl wie folgt angeben.

#if the terminating character is `tab`
FIELDS TERMINATED BY '\t'
#if the terminating character is a `comma`
FIELDS TERMINATED BY ','
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Error