Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?

Поиск
Список
Период
Сортировка
От Dmitriy Igrishin
Тема Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?
Дата
Msg-id CAAfz9KP4RqniSGF8-pZ4eZFkp_XPWydaOBTs-5fY6pqDM+kV3Q@mail.gmail.com
обсуждение исходный текст
Ответы Re: [pgsql-ru-general] Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?
Список pgsql-ru-general
Привет,

31 октября 2011 г. 12:12 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:
Если пишем

INSERT INTO table1 (a, b) VALUES (1, 2) RETURNING "id", '123' AS "name"

то возвращается результат вида

id | name
1  | 123
2  | 123
3  | 123

и так далее

Поскольку INSERT - SELECT работает то возникает соблазн написать

INSERT INTO table2 (table1_id, name)

   INSERT INTO table1 (a, b) VALUES (1, 2) RETURNING "id", '123' AS "name"


Но такая запись не работает. Говорит что синтаксическая ошибка на
втором INSERT. А в документации не вижу упоминания о том что в
качестве query нельзя применять INSERT.

И вот поскольку здесь есть некая двоякость в том к чему относится
RETURNING то я думаю, может я неправильно чет в синтаксисе делаю?
RETURNING ... не тоже самое, что SELECT ..., поэтому так
делать нельзя. Добиться желаемого эффекта можно
поместив INSERT ... RETURNING в функцию, возвращающую
требуемый набор столбцов (или композитный тип).

--
// Dmitriy.


В списке pgsql-ru-general по дате отправления:

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Возможно ли вставлять в несколько таблиц?
Следующее
От: Sergey Konoplev
Дата:
Сообщение: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?