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: UP



am  Wed, dem 23.08.2006, um 15:44:00 +0200 mailte udono folgendes:
> Hallo,
> 
> ich habe folgendes Problem:
> Es sollen eine Reihe von UPDATES und INSERTS durchgeführt werden, in 
> Abhängigkeit von einem Kriterium (EXISTS (SELECT coa FROM defaults 
> WHERE coa='Germany-DATEV-SKR03EU')):
> 
> 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?

Mmmh.

Kannst Du die Wertepaare nicht schon in einer table vorher erfassen?

Ich meine sowas wie:
eine table foo, die upzudaten ist:

test=# select * from foo;
 id | wert
----+------
  1 |    0
  2 |    0
  3 |    0
(3 rows)


eine table bar, die id und wert enthält, was upzudaten ist:

test=*# select * from bar;
 id | wert
----+------
  1 |   10
  2 |   20
(2 rows)


und nun:

test=*# update foo set wert = (select wert from bar where foo.id=bar.id);
UPDATE 3
test=*# select * from foo;
 id | wert
----+------
  1 |   10
  2 |   20
  3 |
(3 rows)

bzw.: update foo set wert = (select wert from bar where foo.id=bar.id)
where id in (select id from bar); um für id=3 korrekt zu arbeiten.


Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47215,   D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net
eMail schreiben kann jeder -- lernen: http://webserv/email/email.html


  • Follow-Ups:

Home | Main Index | Thread Index

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