Hallo,
entweder habe ich ein riesen Brett vor dem Kopf oder irgendetwas ist hier komisch. Ich habe in einer plpgsql-Funktion folgende IF-Verzweigung:
SELECT INTO cur_ansprechpartner_letzter_kontakt
id AS id
FROM letzter_kontakt
WHERE ansprechpartner = id_ansprech;
IF FOUND THEN
RAISE NOTICE ''Eintrag gefunden!'';
result := cur_ansprechpartner_letzter_kontakt.id
ELSE
RAISE NOTICE ''Kein Eintrag gefunden!'';
SELECT INTO cur_letzter_kontakt
id AS id
FROM kontakte
WHERE ansprechpartner = id_ansprech
ORDER BY kontaktam DESC,
kontaktum DESC
LIMIT 1;
INSERT INTO letzter_kontakt (
ansprechpartner, kontakt
)
VALUES (
id_ansprech, cur_letzter_kontakt.id
);
result := curval(''letzter_kontakt_id_seq'');
END IF;
RAISE NOTICE ''Hallo Welt!'';
Wenn ich die Funktion in pgsql aufrufe, sollte sie doch entweder die Meldung ‘Eintrag gefunden’ oder ‘Eintrag nicht gefunden’ ausgeben, oder?
Tut sie aber nicht - weder der IF…THEN- noch der ELSE-Teil werden durchlaufen. Das letzte ‘Hallo Welt!’ wird aber ausgegeben.
Aber sofern kein Laufzeitfehler auftritt, sollte doch zumindest der ELSE-Teil durchlaufen werden, oder?
Ich habe auch schon mal probiert, den IF…THEN und den ELSE-Teil auszutauschen und auf ‘NOT FOUND’ zu testen, ohne Erfolg.