Databases Reference
In-Depth Information
-------------------------------------------------------------
-- FUNCTION num_get
-------------------------------------------------------------
-- Holen der nächsten freien Nummer
CREATE FUNCTION num_get () RETURNS INTEGER
-- SQL/PSM: MODIFIES SQL-DATA
BEGIN ATOMIC
DECLARE wert INTEGER;
UPDATE num_table SET next_num = next_num+1;
SELECT next_num INTO wert FROM num_table;
RETURN wert
END;
7.3.3 Trigger in Datenbanken
Während Datenbankprozeduren bewusst vom Anwender (oder Anwendungspro-
grammierer) aufgerufen werden, werden Trigger durch Ereignisse zwangsweise
vom Datenbanksystem aufgerufen.
Trigger sind zur gleichen Zeit wie Datenbankprozeduren, also etwa 1992, in SQL-
Datenbanksystemen eingeführt worden. Eine Normierung ist im Standard
SQL:1999 erfolgt. Die Beispiele sind in Adaptive Server Anywhere getestet wor-
den. Sie genügen auch dem neuen Standard.
Das Auslösen eines Triggers wird durch mehrere Parameter beschrieben:
trigger_zeitpunkt ::=
BEFORE | AFTER | INSTEAD OF
Ein Trigger kann vor oder nach einem Ereignis aktiviert werden. Er kann auch
anstelle eines vorgesehenen Ereignisses durchgeführt werden. Dadurch ist es
zum Beispiel möglich, dass für Zeilen, die in einer DELETE-Anweisung ge-
löscht werden sollen, stattdessen ein Attribut mit der Bedeutung »Löschmar-
kierung« auf TRUE gesetzt wird.
trigger_ereignis ::=
DELETE | INSERT | UPDATE [OF spaltenliste]
Das auslösende Ereignis kann das Löschen eines Tupels, das Einfügen eines Tu-
pels oder das Ändern eines Tupels sein.
trigger_level ::=
ROW | STATEMENT
Hiermit werden unterschiedliche Aktionen beschrieben, wenn eine Anweisung
mehrere Tupel betrifft, z.B. beim Löschen oder Ändern mehrerer Zeilen. Ein
Trigger auf Zeilenebene wird für jede Zeile einzeln aufgerufen und führt eine
Aktion durch, die auf einzelne Zeilen bezogen ist. Dagegen wird ein Trigger auf
Anweisungsebene nur einmal aufgerufen - ihm stehen dafür jeweils eine Tabelle
der gelöschten bzw. überschriebenen Tupel und eine Tabelle der eingefügten Tu-
pel (bzw. der Tupel nach der Änderung) zur Verfügung, die er auswerten kann.
 
Search WWH ::




Custom Search