Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

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

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group