22001: string_data_right_truncation
PostgreSQL含义
文本长度超过目标列定义的长度(如 VARCHAR(n)),值将被截断;PostgreSQL 拒绝该值并报错。
原因
向 VARCHAR(n)/CHAR(n) 列插入或更新长度超过 n 的文本、应用传来超出预期长度的数据,或列长度定义过窄。
解决方法
缩短值以适应该列,或增大列长度:ALTER TABLE my_table ALTER COLUMN my_column TYPE VARCHAR(500)。如果需要不限长度的文本,使用 TEXT 类型。在应用中校验长度。如果需要有意截断,显式使用 LEFT(value, n)。