Ne peut pas insérer: ERROR: la valeur du tableau doit commencer par " {"ou information sur les dimensions

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',...

les différentes instructions INSERT échouent, dans PostgreSQL. Qu'est-ce que je fais de mal?

EDIT:

Mon schéma:

journeypost=# dt user_data.*
           List of relations
  Schema   |   Name    | Type  | Owner 
-----------+-----------+-------+-------
 user_data | user_data | table | user
(1 row)

ma 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)
9
demandé sur Erwin Brandstetter 2015-07-20 17:25:50

1 réponses

colonne username semble array type, de sorte que le littéral 'mahman' n'est pas valide d'entrée.

Il faudrait '{mahman}':

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

(Ou en faire un simple varchar colonne ou text colonne à la place.)

mettre à Jour le confirme: character varying(50)[] est un arraycharacter varying(50).

15
répondu Erwin Brandstetter 2015-07-20 14:29:41