Re: Use select and update together

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Andreas <maps(dot)on(at)gmx(dot)net>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Use select and update together
Date: 2011-09-17 15:51:10
Message-ID: 1316274671.2203.2.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Sat, 2011-09-17 at 16:56 +0200, Andreas wrote:
> Am 13.09.2011 07:50, schrieb pasman pasmański:
> > In 8.4 this syntax is not implemented.
>
> select * from (
> update tbl set val = 1 where key in ( 1, 2, 3, 4, 5 ) returning *
> ) as x
>
> wouldn't work even in PG 9.1.
> So what data structure is coming out of an "update ... returning *"
> statement?
> It obviously doesn't work like a subquery.
>

The only way to make something like this work in 9.1 would be:

WITH x AS
(update tbl set val = 1 where key in ( 1, 2, 3, 4, 5 ) returning *)
SELECT * FROM x;

--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2011-09-17 16:16:42 Re: Use select and update together
Previous Message Josh Kupershmidt 2011-09-17 15:49:49 Re: insert or update within transaction