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

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?
Date: 2011-10-31 11:05:08
Message-ID: 20111031110508.GB24714@apache.rbscorp.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2011-11-11 21:05:56 А что почитать про индексы?
Previous Message Alexey Klyukin 2011-10-31 09:28:29 Re: [pgsql-ru-general] Возможно ли вставлять в несколько таблиц?