SQL-CREATE TRIGGER

Ist eine Funktion des DBMS, welche bei Änderung von Daten in einer Tabelle aufgerufen wird, das diese Änderung erlaubt, verhindert und/oder weitere Tätigkeiten vornimmt. Trigger werden zur Wahrung Datenkonsistenz (Intergritätsüberprüfungen) und zum Einfügen, Löschen oder Ändern von Referendaren eingesetzt.

CREATE TRIGGER Trigger_Name
(Before | After) [Insert | Update | Delete]
on [Table_Name]
[ for each row | for each column]
[ trigger_body ]

Beispiele

CREATE TRIGGER delete_tutorium
    AFTER DELETE
    ON Modul
    FOR EACH ROW
    BEGIN
        DELETE FROM Tutorium
        WHERE ModNr.Modul=ModNr.Tutorium;
    END;

Automatische Löschung der Tutorien NACH DEM LÖSCHEN eines Moduls.

CREATE TABLE BESUCHT
    ( MATRNR        INT(6)       NOT NULL ,
      MODNR         CHAR(9)      NOT NULL ,
      NOTE          DEC(2,1) ,
      SEMESTER      CHAR(6) ,
      VERSUCH       INT ,
      PRIMARY KEY (MATRNR, MODNR) ,
      FOREIGN KEY (MATRNR) REFERENCES STUDENT(MATRNR),
      FOREIGN KEY (MODNR) REFERENCES MODUL(MODNR)
    );

ALTER TABLE BESUCHT
    ADD DATENBANKERSTELLUNG      DEC(4,2) ,
        DATENBANKABFRAGE         DEC(4,2) ,
        PROGRAMMIERAUFGABE       DEC(4,2) ,
        SCHRIFTLICHER_TEST       DEC(4,2) ,
        GESAMT                   DEC(5,2) ;

CREATE TRIGGER TOTAL
    BEFORE INSERT
    ON
    BESUCHT
    FOR EACH ROW
    SET new.GESAMT=
new.DATENBANKERSTELLUNG+
new.DATENBANKABFRAGE+
new.PROGRAMMIERAUFGABE+
new.SCHRIFTLICHER_TEST ;

Automatische Berechnung der Gesamtpunktenzahl VOR DEM EINSETZEN.