Servus Zusammen,
ich häng bei meiner Funktion an einer wahrscheinlich einfachen Fehlermeldung.
Die Funktion soll Benutzer daran hindern auf ihren eigenen Artikel bieten zu können.
Sobald die Artikel_id in der Tabelle Auktion und Artikel gleich sind und die Anbieter und Käufer Id ebenfalls soll der INSERT bzw das UPDATE nicht zugelassen werden.
Die Fehlermeldung, die ich bekomme ist folgende:
Code:
psql:data_insertion.sql:15: ERROR: control reached end of trigger procedure without RETURN
KONTEXT: PL/pgSQL function "gebot"
Der INSERT der ausgeführt wird ist der hier:
Code:
INSERT INTO auktion(aktuellerpreis, festpreis, startzeit, endzeit, artikel_id, kategorie_id, kaeufer_benutzer_id)VALUES (0.00, 30.00, current_timestamp(0), current_timestamp(0) + interval '7 days', 1, 1, 2);
Code:
CREATE FUNCTION gebot() RETURNS trigger AS '
DECLARE
lv_au_rec auktion%ROWTYPE;
lv_ar_rec artikel%ROWTYPE;
BEGIN
FOR lv_au_rec IN SELECT * FROM auktion LOOP
FOR lv_ar_rec IN SELECT * FROM artikel
LOOP
IF lv_au_rec.artikel_id <> lv_ar_rec.id AND lv_au_rec.kaeufer_benutzer_id = lv_ar_rec.anbieter_benutzer_id THEN
RAISE NOTICE ''Sie dürfen als Anbieter nicht auf ihren eingenen Artikel bieten'';
RETURN NULL;
ELSE RETURN NEW;
END IF;
END LOOP;
END LOOP;
END;'
LANGUAGE plpgsql;
CREATE TRIGGER gebote BEFORE INSERT OR UPDATE ON auktion
FOR EACH ROW EXECUTE PROCEDURE gebot(); Danke im Vorraus für ein paar Tipps
Lesezeichen