DBAtlas · Atlas für Datenbankbetrieb

1406: Data too long for column (Daten zu lang für Spalte)

MySQL

Was bedeutet das?

Es wurde ein Wert geschrieben, der länger als die definierte Maximallänge der Spalte ist. Zum Beispiel passt ein 20 Zeichen langer String nicht in eine VARCHAR(10)-Spalte.

Ursache

Spaltenbreite zu klein für die Daten; Zeichen in einem Multibyte-Zeichensatz (utf8mb4) belegen mehr Platz als erwartet; ein Verkettungsergebnis wird länger; aktiver strikter SQL-Modus (andernfalls wird der Wert stillschweigend abgeschnitten).

Lösung

Verbreitere die Spalte: ALTER TABLE my_table MODIFY my_column VARCHAR(255); Erwäge für sehr lange Inhalte den Typ TEXT. Muss der Wert gekürzt werden, kürze ihn in der Anwendung oder mit SUBSTRING. Finde die überlaufende Zeile: SELECT * FROM my_table WHERE CHAR_LENGTH(my_column) > 10; Ergänze eine Eingabevalidierung.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank