无法插入:错误:数组值必须以“{”或维度信息开头

问题描述 投票:0回答:2
INSERT INTO user_data.user_data (username,randomint)
VALUES ('mahman',1);
ERROR:  array value must start with "{" or dimension information
LINE 1: ... user_data.user_data (username,randomint) VALUES ('mahman...
INSERT INTO user_data.user_data (username,randomint)
VALUES {'mahman',1};
ERROR:  syntax error at or near "{"
LINE 1: ...O user_data.user_data (username,randomint) VALUES {'mahman',...
INSERT INTO user_data.user_data (username,randomint)
VALUES (2,{'mahman',1});
ERROR:  syntax error at or near "{"
LINE 1: ...ser_data.user_data (username,randomint) VALUES (2,{'mahman',...

上述不同的

INSERT
语句在 PostgreSQL 中失败。我做错了什么?

我的模式:

journeypost=# \dt user_data.*
           List of relations
  Schema   |   Name    | Type  | Owner 
-----------+-----------+-------+-------
 user_data | user_data | table | user

我的桌子:

journeypost=# \d user_data.user_data
           Table "user_data.user_data"
  Column   |          Type           | Modifiers 
-----------+-------------------------+-----------
 username  | character varying(50)[] | not null
 randomint | integer                 | 
Indexes:
    "UsernameUnique" PRIMARY KEY, btree (username)
arrays postgresql types sql-insert
2个回答
52
投票

您的列

username
似乎是 array 类型,因此文字
'mahman'
不是有效输入。

必须是

'{mahman}'

INSERT INTO user_data.user_data (username,randomint)
VALUES ('{mahman}',1);

(或者将其设为普通的

varchar
列或
text
列。)

更新确认:

character varying(50)[]
character varying(50)
array

关于array literal / array constructor:


0
投票

非常感谢你的这篇文章。我能够解决我的问题

© www.soinside.com 2019 - 2024. All rights reserved.