You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL插入数据报'malformed array literal'错误求助

问题原因

你在建表语句中使用的VARCHAR[30],在PostgreSQL里被解析为长度为30的VARCHAR数组类型,而非你预期的“最大长度30的普通字符串类型”。当你插入普通字符串时,数据库将其视为数组输入,但格式不符合数组要求,因此抛出数组字面量格式错误。

解决办法

根据你的实际需求选择以下方案:

方案1:修改表结构为普通字符串类型(推荐,若无需数组)

将建表语句中的方括号[]改为圆括号(),以此指定字符串的最大长度:

CREATE TABLE korisnici (
  ime VARCHAR(30),
  prezime VARCHAR(30),
  location VARCHAR(30)
);

如果表已创建,执行ALTER TABLE语句修改字段类型:

ALTER TABLE korisnici 
ALTER COLUMN ime TYPE VARCHAR(30),
ALTER COLUMN prezime TYPE VARCHAR(30),
ALTER COLUMN location TYPE VARCHAR(30);

修改完成后,原插入语句即可正常执行。

方案2:若需数组类型,按数组格式插入数据

如果字段确实需要存储数组,插入时需遵循PostgreSQL的数组语法,用{}包裹元素:

INSERT INTO korisnici ("ime","prezime","location")
VALUES ('{name}','{lastname}','{location}');

也可以使用ARRAY构造函数:

INSERT INTO korisnici ("ime","prezime","location")
VALUES (ARRAY['name'], ARRAY['lastname'], ARRAY['location']);

内容的提问来源于stack exchange,提问作者user22651739

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:08:25