Re: UPDATEs als Bündel absetzten
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/
Home |
Main Index |
Thread Index