Re: UPDATEs als Bündel absetzten

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Cc: udono <udono(at)gmx(dot)net>
Subject: Re: UPDATEs als Bündel absetzten
Date: 2006-08-23 14:03:00
Message-ID: 200608231603.01348.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Am Mittwoch, 23. August 2006 15:44 schrieb udono:
> UPDATE chart SET pos_ustva=96 WHERE accno IN ('1775') AND EXISTS
> (SELECT coa FROM defaults WHERE coa='Germany-DATEV-SKR03EU');
> UPDATE chart SET pos_ustva=100 WHERE accno IN ('1776') AND EXISTS
> (SELECT coa FROM defaults WHERE coa='Germany-DATEV-SKR03EU');
> ...
>
> Besteht in Postgressql die Möglichkeit, die UPDATES 'gebündelt'
> abzusetzen, ohne jedes Mal einzeln die Prüfung auf das Kriterium
> EXISTS (SELECT coa FROM defaults WHERE
> defaults.coa='Germany-DATEV-SKR03EU') durchführen zu müssen?

Ich denke, man könnte zum Beispiel die zu aktualisierenden Paare pos_ustva /
accno in einer Tabelle speichern und dann folgendes machen:

UPDATE chart
SET pos_ustva = COALESCE((SELECT pos_ustva FROM tmptbl WHERE accno =
chart.accno), pos_ustva)
WHERE EXISTS
(SELECT coa FROM defaults WHERE coa='Germany-DATEV-SKR03EU');

Eventuell geht das mit UPDATE FROM noch etwas eleganter, wäre aber wohl
equivalent.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message A. Kretschmer 2006-08-23 14:05:14 Re: UP
Previous Message udono 2006-08-23 13:44:00 UPDATEs als Bündel absetzten