2011/10/31 Dmitriy Igrishin <dmitigr@gmail.com>:
>> Поскольку INSERT - SELECT работает то возникает соблазн написать
>> INSERT INTO table2 (table1_id, name)
>> INSERT INTO table1 (a, b) VALUES (1, 2) RETURNING "id", '123' AS "name"
>>
>> Но такая запись не работает. Говорит что синтаксическая ошибка на
>
> RETURNING ... не тоже самое, что SELECT ..., поэтому так
> делать нельзя. Добиться желаемого эффекта можно
> поместив INSERT ... RETURNING в функцию, возвращающую
> требуемый набор столбцов (или композитный тип).
Если 9.1, то для этого ещё можно использовать WITH с DML
http://www.postgresql.org/docs/9.1/static/queries-with.html#QUERIES-WITH-MODIFYING
--
Sergey Konoplev
Blog: http://gray-hemp.blogspot.com /
Linkedin: http://ru.linkedin.com/in/grayhemp /
JID/GTalk: gray.ru@gmail.com / Skype: gray-hemp