Auslöserereignisvergleichselemente
Ein Auslöserereignisvergleichselement wird in einer ausgelösten Aktion verwendet, um das Ereignis zu testen, das den Auslöser aktiviert hat. Er ist nur in der ausgelösten Aktion einer kompilierten Triggerdefinition gültig (SQLSTATE 42601).
- WIRD GELÖSCHT
- Wahr, wenn der Auslöser durch eine Löschoperation aktiviert wurde. Andernfalls falsch.
- einfügen
- Wahr, wenn der Auslöser durch eine Einfügeoperation aktiviert wurde. Andernfalls falsch.
- WIRD_AKTUALISIERT
- Wahr, wenn der Auslöser durch eine Aktualisierungsoperation aktiviert wurde. Andernfalls falsch.
Hinweise
- Auslöserereignisvergleichselemente können überall in der ausgelösten Aktion einer Anweisung CREATE TRIGGER verwendet werden, die eine Compound-SQL-Anweisung (kompilierte Anweisung) als SQL-Prozeduranweisungverwendet. In anderen Kontexten werden die Schlüsselwörter nicht erkannt und versuchen, als Spalten-oder Variablennamen aufzulösen.
Beispiel
Der folgende Trigger erhöht die Anzahl der Mitarbeiter jedes Mal, wenn eine neue Person eingestellt wird (d. h., jedes Mal, wenn eine neue Zeile in die Tabelle EMPLOYEE eingefügt wird), verringert die Anzahl der Mitarbeiter jedes Mal, wenn ein Mitarbeiter das Unternehmen verlässt, und löst einen Fehler aus, wenn eine Aktualisierung auftritt, die zu einer Gehaltserhöhung von mehr als zehn Prozent des aktuellen Gehalts führen würde, indem er Auslöserereignisvergleichselemente in seinen Bedingungen verwendet:
CREATE TRIGGER HIRED
AFTER INSERT OR DELETE OR UPDATE OF SALARY ON EMPLOYEE
REFERENCING NEW AS N OLD AS O FOR EACH ROW
BEGIN
IF INSERTING
THEN UPDATE COMPANY_STATS SET NBEMP = NBEMP + 1;
END IF;
IF DELETING
THEN UPDATE COMPANY_STATS SET NBEMP = NBEMP - 1;
END IF;
IF (UPDATING AND (N.SALARY > 1.1 * O.SALARY))
THEN SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT = 'Salary increase>10%'
END IF;
END;