Using a CTE for an update

From: David Salisbury <salisbury(at)globe(dot)gov>
To: PostgreSQL general <pgsql-general(at)postgresql(dot)org>
Subject: Using a CTE for an update
Date: 2013-05-31 21:37:12
Message-ID: 51A91808.2050003@globe.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


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;

I get a syntax error at "update". Seems updates don't act quite like selects.

Do I need to write a function that iterates to do an update like this?

thanks in advance,

-ds

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Chris Angelico 2013-05-31 21:51:17 Re: Using a CTE for an update
Previous Message Marti Raudsepp 2013-05-31 16:57:19 Re: [PERFORM] Evaluating query performance with caching in PostgreSQL 9.1.6