postgresql 无法插入:错误:数组值必须以“{”或维度信息开头
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/31519063/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Cannot INSERT: ERROR: array value must start with "{" or dimension information
提问by Noob Doob
journeypost=# 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...
journeypost=# 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',...
journeypost=# 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',...
The above varying INSERT statements fail, in PostgreSQL. What is it that I am doing wrong?
在 PostgreSQL 中,上述不同的 INSERT 语句失败。我做错了什么?
EDIT:
编辑:
My schema:
我的架构:
journeypost=# \dt user_data.*
List of relations
Schema | Name | Type | Owner
-----------+-----------+-------+-------
user_data | user_data | table | user
(1 row)
My table:
我的表:
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)
回答by Erwin Brandstetter
Your column username
seems to be an arraytype, so the literal 'mahman'
is not valid input for it.
您的列username
似乎是数组类型,因此文字'mahman'
不是它的有效输入。
It would have to be '{mahman}'
:
它必须是'{mahman}'
:
INSERT INTO user_data.user_data (username,randomint)
VALUES ('{mahman}',1);
(Or make it a plain varchar
column or text
column instead.)
(或者将其改为普通varchar
列或text
列。)
Update confirms it: character varying(50)[]
is an arrayof character varying(50)
.
更新确认它:character varying(50)[]
是一个阵列的character varying(50)
。