PostgreSQL-Fehler: value too long for type character varying

ERROR:  value too long for type character varying(50)

Ein String überschritt die deklarierte Längenbegrenzung seiner Spalte, und PostgreSQL wies den Schreibvorgang ab, statt ihn stillschweigend abzuschneiden. Ärgerlicherweise nennt die Meldung den Typ, aber nicht die Spalte — herauszufinden, welche Spalte, ist Schritt eins.

Was dieser Fehler bedeutet

Zwei PostgreSQL-spezifische Tatsachen rahmen die Lösung:

Häufige Ursachen

So diagnostizieren Sie ihn

-- Welche varchar(50)-Spalten die verdächtige Tabelle hat:
SELECT column_name, character_maximum_length
FROM information_schema.columns
WHERE table_name = 'users' AND character_maximum_length IS NOT NULL;

Vergleichen Sie dann mit der fehlgeschlagenen Payload. Wenn die Anweisung protokolliert ist, stehen die Werte direkt da.

So beheben Sie ihn