Rückgabewert für INSERT-Trigger

Probleme und Fragen zum Thema Trigger und Funktionen.

Rückgabewert für INSERT-Trigger

Beitragvon symbiont » Mo 29. Sep 2008, 09:57

hallöle

ich habe folgende Idee ... für einen Clientgesteuerten Daten-Import vergwohltätige ich ueber ein Feld um eine BEFORE-INSERT Trigger Fkt. zu steuern.

d.h. wenn da halt 'X' drin steht prüft die Trigger Fkt ob der Datensatz bereits existiert (suche nach natural key) - wenn nicht dann wird das INSERT fortgesetzt - sonst nicht.

Nun möchte mein Client aber auf jeden Fall die ID des existierenden Satzes (egal ob der jetzt ertzeugt wurde oder bereits existierte) - diese lasse ich mir mit INSERT INTO .. RETURNING id_column liefern

Das bloede ist, dass bei Trigger-Abbruch das INSERT ja nicht ausgefuehrt wird und ich auch keine ID bekomme .. ich habe ja mal versucht zu tricksen, und das in der TgFkt gefundene existierende Record zurueckliefern wollen - aber da passierte, was zu erwarten war - INSERT geht schief - weil satz & PK schon existiert.

Ja wenn jetzt jemand rätselt warum - ich moechte SELECTs vom Client aus - für so Import-Fkt vermeiden - einfach weils viel flotter ist den Server machen zu lassen - aber trotzdem die Funktion satz für satz steuern können.

Cool wäre ne Lösung die möglichst nicht weit weg von dem ist, was man mit anderen DBMS auch anstellen kann. Daher die Idee mit der Trigger-Funktion.

Habt ihr irgendwelche Tips?

Ich denke mir, dass ich vielleicht einfach eine Server-Funktion direkt aufrufe die mir dann immer eine ID liefern kann .. sollte auch mit anderen DBMS funktionieren .. aber dann kann ich keine PreparedStatements verwenden und der gleichen ..

hmm
symbiont
Erfahrener Benutzer
 
Beiträge: 1328
Registriert: Mo 17. Mär 2008, 12:45
Wohnort: NULL

Zurück zu Trigger und Funktionen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste