Hallo zusammen, ich bin das erstemal hier im Forum und gespannt wie es weitergeht. Mein trigger macht nicht das was er soll...
Ich habe eine Tabelle(Menge) Abschlussarbeiten und drei Tabellen(disjunkte Mengen), die in reserviert,laufend und abgegeben unterteilt.
Ich kann in der Tabelle reserviert nur einfügen, wenn der Status = `frei` UND die Zuordnung = NULL ist.
Das gleiche gilt auch für die Tabelle laufend
......Status ='belegt' UND Zuordnung = 'reserviert'
...ich war oft auf dieser Seite und habe einige Tipps gut nutzen können aber hier sitze ich schon 24 std dran ich komme einfach nicht weiter.
Der Trigger bewirkt nicht das was es soll. Könnt ihr mir da helfen?
habe es geändert, aber klappt trotzdem nicht!
Aber sieht trotzdem schon besser aus
Ich habe eine Tabelle(Menge) Abschlussarbeiten und drei Tabellen(disjunkte Mengen), die in reserviert,laufend und abgegeben unterteilt.
Ich kann in der Tabelle reserviert nur einfügen, wenn der Status = `frei` UND die Zuordnung = NULL ist.
Das gleiche gilt auch für die Tabelle laufend
......Status ='belegt' UND Zuordnung = 'reserviert'
...ich war oft auf dieser Seite und habe einige Tipps gut nutzen können aber hier sitze ich schon 24 std dran ich komme einfach nicht weiter.
Der Trigger bewirkt nicht das was es soll. Könnt ihr mir da helfen?
SQL:
CREATE OR REPLACE TRIGGER aft_reserviert_tr
After INSERT ON abschlarbreserviert
FOR EACH ROW
DECLARE
excep_bereits_belegt EXCEPTION;
akt_status abschlussarbeit.abschlarbstatus%TYPE;
CURSOR get_status IS SELECT a.abschlarbstatus FROM abschlussarbeit a WHERE :NEW.abschlarb_id=a.abschlarb_id ;
BEGIN
OPEN get_status;
FETCH get_status INTO akt_status;
IF (akt_status='frei')THEN
UPDATE abschlussarbeit SET abschlussarbeit.abschlarbzuordnung = 'reserviert' ,
abschlussarbeit.abschlarbstatus= 'belegt'
WHERE :NEW.abschlarb_id = abschlussarbeit.abschlarb_id ;
Else
THEN RAISE excep_bereits_belegt;
END IF;
CLOSE get_status;
EXCEPTION WHEN excep_bereits_belegt THEN Dbms_Output.put_line('diese Abschlussarbeit ist bereits reserviert');
END;
Aber sieht trotzdem schon besser aus

Zuletzt bearbeitet: