From: Gábriel Ákos <akos.gabriel@i-logic.hu>
To: pgsql-sql@postgresql.org
Subject: Re: Update question
Date: Tue, 28 Mar 2006 19:34:23 +0200
Message-ID: <4429739F.6020205@i-logic.hu> (raw)
In-Reply-To: <442969AB.2020604@logix-tt.com>
References: <00b801c65286$7ca8f260$b8d849c6@versaterm.com>
<442969AB.2020604@logix-tt.com>
Markus Schaber wrote:
> Hi, Fay,
>
> Fay Du wrote:
>> Table cost
>>
>> Id edge_id cost
>> 1 30 101.4
>> 2 30 null
>> 3 40 500.2
>> 4 40 null
>> 5 45 300.7
>> 6 45 null
>
>> I want to set cost value with same edge_id by same value. The existing
>> values are calculated by calling a function (calculate edge length). I
>> can calculate the value by same function, but the function was slow. I
>> wander if I can use update statement to set the second value with same
>> edge_id. Thanks in advance for your help.
>
> It should go like:
>
> UPDATE cost SET edge_id = (SELECT cost FROM cost innr WHERE innr.edge_id
> = edge_id AND innr.cost is not null) WHERE cost is null;
>
> HTH,
> Marku
>
This is ok, but this is redundant, i guess. you should put edge_id and
cost into another table and use join to retrieve cost for each id.
put a key on edge_id, most likely a primary (unique) key.
--
Üdvözlettel,
Gábriel Ákos
-=E-Mail :akos.gabriel@i-logic.hu|Web: http://www.i-logic.hu=-
-=Tel/fax:+3612367353 |Mobil:+36209278894 =-
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: akos.gabriel@i-logic.hu
Subject: Re: Update question
In-Reply-To: <4429739F.6020205@i-logic.hu>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox