UPDATE command with FROM clause

From: JORGE MALDONADO <jorgemal1960(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: UPDATE command with FROM clause
Date: 2019-08-13 18:37:42
Message-ID: CAAY=A7-UcNWsakeEALHfdZMQ_0qZaBFbY+JM+qF1_mnCX-ckaw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

I have a query like this:

UPDATE chartsclub.secc_esp_votar_votos
SET svv_puntos = 0 FROM
(SELECT * FROM chartsclub.secc_esp_votar_votos AS tblVotos WHERE
svv_sva_clave = 114 EXCEPT
(SELECT DISTINCT ON (svv_fechareg) * FROM
chartsclub.secc_esp_votar_votos AS tblVotos WHERE svv_sva_clave = 114 ORDER
BY svv_fechareg))

Will the UPDATE command affect only (all) records generated by the SELECT
clause in the FROM clause?

I suppose that, if I include a WHERE clause, the condition will be applied
to the records obtained by the SELECT clause in the FROM clause.
Is this correct?

My goal is to get a set of records from one table and update only such a
set of records.
In this case, the set of records to be updated are those obtained by the
SELECT command in the FROM clause.
As you can see, there is only one table involved but I added an alias to
the SELECT statement in the FROM clause based on what I read in the
documentation.

Best regards,
Jorge Maldonado

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Libre
de virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rob Sargent 2019-08-13 21:45:57 Re: UPDATE command with FROM clause
Previous Message Rajesh Parameswaran 2019-08-03 01:03:52 [ECPG] - Help on Dynamic Query using SQLDA with Cursors