1406: Data too long for column (Daten zu lang für Spalte)
MySQLWas 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.
Weitere Einträge zu dieser Datenbank
- 1136Column count doesn't match value count (Spaltenanzahl passt nicht zur Werteanzahl)
- 1048Column 'x' cannot be null (Spalte darf nicht NULL sein)
- 1292Incorrect datetime value / truncated incorrect value (falscher Datums-/Zeitwert)
- 1071Specified key was too long; max key length is 767 bytes (Schlüssel zu lang; maximal 767 Bytes)
- 1050Table already exists (Tabelle existiert bereits)
- 1051Unknown table 'x' (unbekannte Tabelle)
- 1091Can't DROP 'x'; check that column/key exists (DROP nicht möglich; Spalte/Schlüssel existiert nicht)