Re: Using a CTE for an update

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: David Salisbury <salisbury(at)globe(dot)gov>
Cc: PostgreSQL general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Using a CTE for an update
Date: 2013-05-31 22:21:14
Message-ID: CAMkU=1z69_bgEY4MeSOvq+74+TfB_-9xTuA=kp23Ak3uROjngA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, May 31, 2013 at 2:37 PM, David Salisbury <salisbury(at)globe(dot)gov>wrote:

>
> I would think this would be possible. I'm on 9.0.8
>
> I have a reference between two tables, and want to populate a field in one
> table
> with a value that's in the referenced table ( based on the FK reference of
> course ).
>
> with row as ( select my.atmos_site_id, my.stationid from my_stations my,
> atmos_sites asites where my.atmos_site_id = asites.id )
> update atmos_sites set stationid = row.stationid where id =
> row.atmos_site_id;
>

This ability was introduced in 9.1.

"Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements
(Marko Tiikkaja, Hitoshi Harada)"

Also, you need a "from row" phrase on you update command.

Cheers,

Jeff

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Salisbury 2013-05-31 22:33:36 Re: Using a CTE for an update
Previous Message Victor Yegorov 2013-05-31 21:59:41 Re: Using a CTE for an update