In diesem Artikel erfahren Sie, wie Sie die WHEN-Klausel im Oracle-Trigger verwenden, um den Trigger bei der angegebenen Bedingung auszulösen. Unten ist ein Beispiel.
Sie können dieses Trigger-Beispiel testen, indem Sie die folgende Tabelle erstellen und in Ihrem Oracle-Datenbankschema auslösen.
Tabelle erstellen
CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10 BYTE), JOB VARCHAR2(9 BYTE), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) /
Erstellen Sie einen Oracle-Datenbank-Trigger mit WHEN-Klausel
Der folgende Trigger wird nur ausgelöst, wenn JOB gleich CLERK ist , und wenn ja, wird die COMM-Spalte (Kommission) auf 0 gesetzt.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Test
Die folgende Einfügeanweisung für die EMP-Tabelle versucht, einen Datensatz für CLERK mit der Provision 300 einzufügen.
SET DEFINE OFF; Insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) Values (7499, 'ALLEN', 'CLERK', 7698, TO_DATE('02/20/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1600, 300, 30); COMMIT;
Tabelle abfragen
Fragen Sie nun die EMP-Tabelle nach dem oben eingefügten Datensatz ab, und Sie werden feststellen, dass der COMM-Spaltenwert 0 ist .
SELECT * FROM EMP WHERE EMPNO = 7499;
Siehe auch:
- Erfahren Sie, wie Sie einen Trigger in Oracle SQL Developer erstellen
- Beispiel zum Erstellen von Triggern in Oracle Forms