Cannot INSERT: ERROR: array value must start with “{” or dimension information

匿名 (未验证) 提交于 2019-12-03 02:00:02

问题:

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?

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) 

回答1:

Your column username seems to be an array type, so the literal 'mahman' is not valid input for it.

It would have to be '{mahman}':

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

(Or make it a plain varchar column or text column instead.)

Update confirms it: character varying(50)[] is an array of character varying(50).



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!