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

In Funktion prüfen ob Zeile existiert

From: Oliver Baer <oliver(dot)baer(at)presswatch(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: In Funktion prüfen ob Zeile existiert
Date: 2008-07-31 21:27:22
Message-ID: 48922E3A.5080400@presswatch.de (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Hallo,

ich habe hier einen teil einer Postgresfunktion welche eine Tabelle updated.

      ...
	LOOP
--            RAISE NOTICE 'notify_id %', asset_notify.notify_id;
--            RAISE NOTICE 'asset_id %', NEW.asset_id;
--            RAISE NOTICE 'label_id %', asset_notify.label_id;
            INSERT INTO asset.asset_labels (label_id, asset_id, state, login_id) values (asset_notify.label_id, NEW.asset_id, -2, asset_notify.login_id);
        END LOOP;
      ...

Das problem welches ich gerade habe ist folgendes.

Es kann sein das mit das der insert auf die tabelle fehlschlägt weil 
dort schon etwas drinsteht (unique auf asset_id, label_id). Das würde 
ich gerne abfangen, das heisst wenn der insert fehlschlägt soll er ein 
update machen.

Leider kenne ich mit Funktionen in Postgres nicht so gut aus, vielleicht 
hilft mir ja hier jemand auf die sprünge...

Ich stelle mir einfach eine IF abfrage vor:

IF insert schlägt fehl THEN update ...

Danke schonmal,

Oli

Responses

pgsql-de-allgemein by date

Next:From: Susanne EbrechtDate: 2008-08-01 14:28:58
Subject: Re: Artikel im Linux Technical Review: Datenbanken
Previous:From: Andreas 'ads' ScherbaumDate: 2008-07-28 11:11:25
Subject: == Wöchentlicher PostgreSQL Newsletter - 27. Juli 2008 ==

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group