Re: how to write correctly this update ?

From: Pierre Couderc <pierre(at)couderc(dot)eu>
To: Rob Sargent <robjsargent(at)gmail(dot)com>
Cc: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: how to write correctly this update ?
Date: 2019-05-22 14:30:12
Message-ID: df0cb8a6-aadd-e7d5-6b14-4ae2b38fc6ae@couderc.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On 5/22/19 3:19 PM, Rob Sargent wrote:
> Don’t use the alias on the column(s) being set.
> This passed the parser:
> UPDATE personnes T1 SET nom_naiss=T1.nom FROM personnes T2, personnes T3
> WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom;
Wow, fine ! you got  it!
>
> (I have no data in my table so I can’t confirm the logic. You seem to want to update mother’s maiden name if her current (sur)name doesn’t match that of the father of (one of?) her children? That might be a serious leap of faith.)
Now I check manually... ;)
>
>> On May 22, 2019, at 6:43 AM, Pierre Couderc <pierre(at)couderc(dot)eu> wrote:
>>
>> I have tried many ways to update a table :
>>
>> UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T2, personnes T3
>> WHERE ....;
>>
>>
>> UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T1, personnes T2, personnes T3
>> WHERE ..;
>>
>>
>> In my case , where clause is : WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom;
>>
>> Thanks.
>>
>> PC
>>
>>
>>
>>
>>
>>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2019-05-22 14:38:29 Re: Bulk inserts into two (related) tables
Previous Message Patrick FICHE 2019-05-22 13:59:15 RE: Which records aren't in list? Use static list as table or records