ELEMENT trigger (#PCDATA) ATTRIBUTE name string dbms string on string insert bool update bool delete bool
Attribut | Typ | Pflicht | Default | Beschreibung |
---|---|---|---|---|
name | string | - | n/a | Ein eindeutiger Name welcher diesen Trigger identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein. |
dbms | string | - | generic | Der Name des Ziel-DBMS. Der Wert "generic" bedeutet, dass die Definition für jedes DBMS zutreffend ist. Gewöhnlich wird das als Rückfalloption für DBMS verwendet, an welche Sie entweder beim Erstellen der Datenbankstruktur noch nicht gedacht haben, oder welche das fragliche Feature nicht unterstützen. |
on | string | - | before |
|
insert | bool | - | no | auslösen bei Insert-Anweisungen |
update | bool | - | no | auslösen bei Update-Anweisungen |
delete | bool | - | no | auslösen bei Delete-Anweisungen |
Trigger sind ein Feature von Datenbanksystemen, welches es erlaubt, auf bestimmte Datenbankereignisse mit der Ausführung von Code zu reagieren. Trigger werden durch Insert-, Update- oder Delete-Anweisungen, oder eine Kombination dieser, ausgelöst. Sie werden entweder vor (before), nachdem (after) oder anstatt (instead) der Anweisung ausgeführt. Nach dem Auslösen eines Triggers, wird der angegebene Code durch die Datenbank ausgeführt.
Die Syntax der Implementierung des Triggers hängt jedoch stark vom gewählten DBMS ab. Nicht alle DBMS unterstützen alle Features. Zum Beispiel: unterstützen nicht alle DBMS Trigger, die anstatt (instead) einer Anweisung ausgeführt werden und diese ersetzen.
Beachten Sie, dass ein Trigger eine benutzerdefinierte Funktion impliziert. Einige DBMS verlangen daher, dass diese Funktion explizit erzeugt und für den Trigger nur der Name der Funktion angeben wird. Andere DBMS erlauben, dass Sie den Funktionscode zusammen mit dem Trigger angeben.
Wenn ein Trigger eine Funktionalität verwendet, die durch das gewählte DBMS nicht unterstützt wird, wird dieses beim Versuch den Trigger zu erstellen einen Fehler melden. Die Implementierung selbst braucht dies nicht zu prüfen.
Trigger, welche die DBMS-Einstellung "generic" verwenden, müssen emuliert werden. In diesem Fall muss der Code durch die XDDL-kompatible Software, anstatt durch die Datenbank, ausgeführt werden. Die Implementierung kann die erforderliche Syntax für den Code selbst festlegen. Für diesen Fall wird empfohlen, dass das Attribut Code für derartige Trigger beschränkt wird auf gültige Callbacks (Funktions- oder Methodennamen). Das Yana Framework verlangt, dass das Attribut Code für emulierte Trigger ein gültiger Name einer nutzerdefinierten PHP-Funktion sein muss. Nähere Informationen zu diesem Thema finden Sie auch im Handbuch zur Datenbank-Schnittstelle.
Thomas Meyer, www.yanaframework.net