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

From Dmitry E. Oboukhov
Subject Re: Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?
Date
Msg-id 20111031110508.GB24714@apache.rbscorp.ru
Whole thread Raw
In response to Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?  (Alexey Klyukin <alexeyk@me.com>)
List pgsql-ru-general
> Даже если заключить второе выражение в скобки и поставить SELECT, работать
> оно не будет.  RETURNING возвращает выражение, похожее на SELECT, но не
> создает промежуточный множество, которое можно использовать как вложенный
> запрос. В 9.1 появилась поддержка writeable CTE, которые используют RETURNING
> и позволяют реализовать INSERT сразу в 2 таблицы без процедур, например:

> CREATE TABLE foo(a integer, b integer);
> CREATE TABLE bar(a integer, b integer);

> WITH insert_foo AS
> (INSERT INTO foo SELECT id, id * (-1)
> FROM generate_series(200,300) id RETURNING *)
> INSERT INTO bar SELECT * FROM insert_foo;

> Отличие в том, что CTE как раз создает промежуточную таблицу результатов выражения
> внтури WITH. К сожалению, это доступно только с 9.1

Спасибо!

Хороший повод съехать на 9.1

--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment

pgsql-ru-general by date:

Previous
From: Alexey Klyukin
Date:
Subject: Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?
Next
From: "Dmitry E. Oboukhov"
Date:
Subject: А что почитать про индексы?