spinneimetz
Benutzer
- Beiträge
- 8
Hallo zusammen,
ich bin neu im Forum und benötige etwas Hilfe beim Bearbeiten einer Datenbank. (Aufgabe fürs Studium).
Bei uns ist es scheinbar üblich das man Aufgaben bekommt zu denen man noch nie etwas gelernt hat. Wir haben bisher eigentlich nur SELECT Anfragen geübt. Nun sollen wir aber eine komplette Datenbank erstellen und in Oracle Application Express darstellen. (Prüfungszulassung)
Zum Verständnis haben wir jetzt ein paar Übungen bekommen.
Nun hänge ich an folgender Aufgabe:
Erzeugen sie im SQL-Developer einen Trigger CHANGE_LOCATION, der das Gehalt der Angestellten um 2% erhöht, wenn der Standort ihrer Abteilung verlegt wird.
Das Gehalt ist SAL in der Tabelle EMP
Die Abteilungsstandorte sind unter LOC in der Tabelle DEPT
(sind glaube Standard Beispiel Dateien)
Ich habe bisher (nach sehr langem suchen und lesen) folgendes Ergebnis:
create or replace Trigger CHANGE_LOCATION
AFTER UPDATE OF LOC
ON DEPT
FOR EACH ROW
BEGIN
UPDATE EMP
SET sal=sal*1.02;
end;
Das Problem:
Sobald ich einen Eintrag in LOC ändere, werden ALLE Einträge in SAL geändert. Nicht nur die entsprechenden.
Ich habe viel mit WHEN Versucht und OLD. und NEW. aber komme einfach nicht weiter.
Ich hoffe ihr könnt mir helfen.
Leider verstehe ich auch den Grundaufbau und die einzelnen Befehle des Triggers noch nicht wirklich.
Danke im Vorraus
LG spinneimnetz
ich bin neu im Forum und benötige etwas Hilfe beim Bearbeiten einer Datenbank. (Aufgabe fürs Studium).
Bei uns ist es scheinbar üblich das man Aufgaben bekommt zu denen man noch nie etwas gelernt hat. Wir haben bisher eigentlich nur SELECT Anfragen geübt. Nun sollen wir aber eine komplette Datenbank erstellen und in Oracle Application Express darstellen. (Prüfungszulassung)
Zum Verständnis haben wir jetzt ein paar Übungen bekommen.
Nun hänge ich an folgender Aufgabe:
Erzeugen sie im SQL-Developer einen Trigger CHANGE_LOCATION, der das Gehalt der Angestellten um 2% erhöht, wenn der Standort ihrer Abteilung verlegt wird.
Das Gehalt ist SAL in der Tabelle EMP
Die Abteilungsstandorte sind unter LOC in der Tabelle DEPT
(sind glaube Standard Beispiel Dateien)
Ich habe bisher (nach sehr langem suchen und lesen) folgendes Ergebnis:
create or replace Trigger CHANGE_LOCATION
AFTER UPDATE OF LOC
ON DEPT
FOR EACH ROW
BEGIN
UPDATE EMP
SET sal=sal*1.02;
end;
Das Problem:
Sobald ich einen Eintrag in LOC ändere, werden ALLE Einträge in SAL geändert. Nicht nur die entsprechenden.
Ich habe viel mit WHEN Versucht und OLD. und NEW. aber komme einfach nicht weiter.
Ich hoffe ihr könnt mir helfen.
Leider verstehe ich auch den Grundaufbau und die einzelnen Befehle des Triggers noch nicht wirklich.
Danke im Vorraus
LG spinneimnetz