Hallo Community,
ich habe mal eine Frage zur Trigger Programmierung:
Aber erstmal vorab mein Tabellen aufbau:
• Mitarbeiter (#PNr, Name, *ANr, Gehalt)
• Abteilung (#ANr, AName)
• Hotel (#HNr, HName, HKategorie, PLZ, Ort,Rahmenvertrag)
• Reise (#*Mitarbeiter, #*Hotel, #Beginndatum, Dauer, Kosten)
(#=Primärschlüssel, *=Fremdschlüssel)
So meine Aufgabe ist folgende: Wenn ich in die Tabelle Reise ein neuen Datensatz eintragen möchte, soll erst überprüft werden ob das Hotel das eingetragen werden soll bei Rahmenvertrag eine 1 (also True) hat. Ansonst soll der Insert abgewiesen werden.
Dies wollte ich mit einem Trigger realisieren mein momentaniger Ansatz ist:
Somit hätte ich schonmal das Gerüst, ich stehe nun vor dem Problem wie ich die IF Abfrage des Rahmenvertrags realisiere, da diese ja das Attribut Rahmenvertrag in der Tabelle Hotel und nicht in Reisen habe.
Hier muss ich wohl einen JOIN veranlassen, und wie ich dies in einem Trigger machen verstehe ich nicht.
Ich hoffe ihr könnt mir weiter helfen.
ich habe mal eine Frage zur Trigger Programmierung:
Aber erstmal vorab mein Tabellen aufbau:
• Mitarbeiter (#PNr, Name, *ANr, Gehalt)
• Abteilung (#ANr, AName)
• Hotel (#HNr, HName, HKategorie, PLZ, Ort,Rahmenvertrag)
• Reise (#*Mitarbeiter, #*Hotel, #Beginndatum, Dauer, Kosten)
(#=Primärschlüssel, *=Fremdschlüssel)
So meine Aufgabe ist folgende: Wenn ich in die Tabelle Reise ein neuen Datensatz eintragen möchte, soll erst überprüft werden ob das Hotel das eingetragen werden soll bei Rahmenvertrag eine 1 (also True) hat. Ansonst soll der Insert abgewiesen werden.
Dies wollte ich mit einem Trigger realisieren mein momentaniger Ansatz ist:
Code:
delimiter // CREATE TRIGGER Rahmenvertrag_check1 BEFORE INSERT ON REISE FOR EACH ROW BEGIN Declare rv integer; Select Rahmenvertrag Into rv from Hotel JOIN REISE ON REISE.HOTEL = HOTEL.HNr where HNr=new.Hotel; IF rv = 1 THEN Insert into Reise VALUES(new.Mitarbeiter,new.Hotel,new.Beginndatum,new.dauer,new.Kosten); END IF; END// delimiter ;
Somit hätte ich schonmal das Gerüst, ich stehe nun vor dem Problem wie ich die IF Abfrage des Rahmenvertrags realisiere, da diese ja das Attribut Rahmenvertrag in der Tabelle Hotel und nicht in Reisen habe.
Hier muss ich wohl einen JOIN veranlassen, und wie ich dies in einem Trigger machen verstehe ich nicht.
Ich hoffe ihr könnt mir weiter helfen.
Comment