Databases Reference
In-Depth Information
Als Ereignisse stehen alle möglichen Änderungen der Tabellen
zur Verfügung, die mit INSERT, UPDATE und DELETE bear-
beitet werden. Die Aktionen bestehen grundsätzlich aus
PL/SQL-Programmen. Die generelle Form von Triggern sieht
wie folgt aus.
CREATE [ OR REPLACE ] TRIGGER <Triggername>
{ BEFORE | AFTER }
{ INSERT | DELETE | UPDATE } [ OF {Spaltenliste}]
[ OR { INSERT | DELETE | UPDATE } [ OF {Spaltenliste}]]
...
[ OR { INSERT | DELETE | UPDATE } [ OF {Spaltenliste}]]
ON <Tabellenname>
[ FOR EACH ROW ]
[ WHEN <Bedingung>]
<PL/SQL-Block> ;
Dabei stehen in geschweiften Klammern stehende, mit senk-
rechten Strichen abtrennte Teile für Alternativen, von denen ei-
ne gewählt werden muss.
Die gesamten Alternativen werden anhand von Beispielen dis-
kutiert. Eine typische Aufgabe von Triggern ist es, Änderungen
in der Datenbank zu protokollieren. Dazu wird jetzt eine einfa-
che Tabelle zur Protokollierung genutzt, die festhält, wer wel-
ches Tier in das System eingetragen hat. Zur Feststellung des
Ausführenden des INSERT-Befehls wird die Systeminformation
USERNAME in der Systemtabelle USER_USERS genutzt. Die
Protokolltabelle soll folgende Form haben.
Defintion von
Triggern
CREATE TABLE Zooprotokoll(
nr INT,
wann DATE,
wer VARCHAR(255),
gehege INTEGER,
tiername VARCHAR(12),
PRIMARY KEY(nr)
);
Die Nummerierung der Einträge soll automatisch erfolgen. Zu
diesem Zweck kann man sogenannte Sequenzzähler in Oracle
definieren, ihre Syntax ist wie folgt.
CREATE SEQUENCE <Sequenzname>
INCREMENT BY <inc>
START WITH <start> ;
automatische
Zählvariable
269
Search WWH ::




Custom Search