Trigger

Kirby.exe

Top Contributor
Also ich habe eine Tabelle rental in der eine Auflistung von verliehenen Filmen ist. Nun soll der Trigger bei einem Insert prüfen ob der Film aktuell noch verliehen ist. Soweit so gut...xD Nur verstehe ich nicht was ich machen soll wenn er nicht verliehen ist? Was gibt meine Funktion dann zurück?

Hier ist einmal meine Funktion für den Trigger:

SQL:
CREATE FUNCTION prevent_doublerental(inventory_id integer, rental_date timestamp) RETURNS trigger  -- <--- Keine Ahnung was hier hin soll
    LANGUAGE plpgsql
    AS $$
DECLARE
    tmpSQL TEXT;
BEGIN
    tmpSQL := 'Select inventory_id FROM rental r WHERE r.inventory_id = ' || inventory_id ' and r.return_date > ' || rental_date;
    IF NEW.inventory_id IN EXECUTE tmpSQL THEN
        RAISE EXCEPTION 'This Film is already rented and cannot be rented at the moment!';
    END IF;
    RETURN NEW;
END $$;

Die Funktion soll dann als Trigger verwendet werden :)
 

LimDul

Top Contributor

Du darfst keine parameter definieren: Note that the function must be declared with no arguments

Lies die Doku mal in Ruhe durch.
 

Kirby.exe

Top Contributor
Mhh ok dann werde ich das mit dem NEW.xyz lösen aber ich verstehe halt nicht ganz wie ich prüfen soll ob der Film verliehen ist ohne ein SELECT zu machen :( Denn er meckert, dass man das nich im IF Executen kann oder so
 

Ähnliche Java Themen

Neue Themen


Oben