postgres: установка значения массива с помощью подзапроса? - PullRequest
2 голосов
/ 02 февраля 2011

В postgres, вы можете установить значение массива в INSERT для результата подзапроса?Например:

INSERT INTO mytable
VALUES( SELECT list_of_integers FROM someothertable WHERE somekey = somevalue);

Где этот mytable имеет в качестве одного столбца тип integer[], а этот другой столбец list_of_integers также имеет тип integer[]?

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Да

INSERT INTO
     mytable
    (column1, column2, an_array_of_integers_column)
VALUES
    (2, 'bbb', (SELECT list_of_integers FROM someothertable WHERE somekey = somevalue));
1 голос
/ 02 февраля 2011

Требуется функция unnest . Я думаю, что вы будете использовать это как:

INSERT INTO mytable
SELECT set_of_integers
FROM unnest(
  SELECT list_of_integers
  FROM someothertable
  WHERE somekey = somevalue
) t(set_of_integers)

Но у меня нет PostgreSQL, чтобы попробовать это сам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...