Penny: Trigger anlegen

Beitrag lesen

Hallo,

diese Frage richtet sich an Leute mit Wissen über "Trigger" in
Datenbanken (hier die Oracle-Datenbank).

Die Eingabe des folgenden Triggers wird von der Oracle-Datenbank
mit einem Komplilierungs-Fehler quittiert - der Trigger wird
angelegt aber funktioniert nicht.
Der Fehler muß in den letzten 8 Zeilen des Triggers (ab dem
SELECT) liegen.

Vielleicht findet einer von Euch den Fehler.

Hinweis zum Verständnis:
Die Tabelle "sportlerin" enthält nur das Attribut "vereinsbeitrag"
und einen Fremdschlüssel "s_id", der auf den Primärschlüssel "m_id"
der Tabelle "mitglied" zeigt (in der alle übrigen Attribute einer
Sportlerin zu finden sind).

Hier der Trigger:

/*

* Trigger, der dafür sorgt, daß beim Einfügen von volljährigen SportlerInnen

* in die Tabelle "Sportlerin", der Vereinsbeitrag auf 20 Euro erhöht

* wird (Hinweis: SportlerInnen unter 18 zahlen nur 10 Euro).

*/

CREATE OR REPLACE TRIGGER beitrag

AFTER INSERT OR UPDATE ON sportlerin

FOR EACH ROW

DECLARE

geburt DATE;

BEGIN

SELECT m.geburtsdatum INTO geburt FROM mitglied m WHERE :new.s_id = m.m_id;

IF (MONTHS_BETWEEN(SYSDATE, geburt)/12>=18)

THEN

IF INSERTING OR UPDATING

THEN

UPDATE sportlerin SET vereinsbeitrag=20 WHERE s_id = :new.s_id;

END IF;

END;

/