Re: [GENERAL] How do I insert and update into a table of arrays of composite types via a select command?
От | Tom Lane |
---|---|
Тема | Re: [GENERAL] How do I insert and update into a table of arrays of composite types via a select command? |
Дата | |
Msg-id | 21511.1508960821@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | [GENERAL] How do I insert and update into a table of arrays of composite typesvia a select command? (Celia McInnis <celia.mcinnis@gmail.com>) |
Ответы |
Re: [GENERAL] How do I insert and update into a table of arrays ofcomposite types via a select command?
Re: [GENERAL] How do I insert and update into a table of arrays ofcomposite types via a select command? |
Список | pgsql-general |
Celia McInnis <celia.mcinnis@gmail.com> writes: > My first question is: HOW do I populate this table, at first with arrays > containing one element from the t_composite table? > I have tried various things with no success. You didn't say what you tried, but I imagine it was something like regression=# insert into t_array select array[row('a','b','c'),row('d','e','f')]; ERROR: column "data_array" is of type mytype[] but expression is of type record[] LINE 1: insert into t_array select array[row('a','b','c'),row('d','e... ^ HINT: You will need to rewrite or cast the expression. Like it says, you need a cast. You can either cast the array elements individually: regression=# insert into t_array select array[row('a','b','c')::mytype,row('d','e','f')::mytype]; INSERT 0 1 or just cast the whole ARRAY[] construct: regression=# insert into t_array select array[row('a','b','c'),row('d','e','f')]::mytype[]; INSERT 0 1 although I think the latter only works in relatively late-model Postgres, and it might make parsing a bit slower too. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
В списке pgsql-general по дате отправления: