В тази статия ще научите как да използвате клауза WHEN в тригера на Oracle, за да активирате тригера при посоченото условие. По-долу е даден пример.
Можете да тествате този пример за задействане, като създадете следната таблица и тригер във вашата схема на база данни на Oracle.
Създаване на таблица
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) ) /
Създайте тригер за база данни на Oracle с клауза WHEN
Следното задействане ще се задейства само когато JOB е равно на CLERK , и ако е, тогава ще зададе колоната COMM (комисионна) на 0.
CREATE OR REPLACE TRIGGER emp_trig_1 BEFORE INSERT ON EMP FOR EACH ROW WHEN (NEW.job = 'CLERK') BEGIN :NEW.comm := 0; END; /
Тест
Изявлението за вмъкване по-долу за таблица EMP ще се опита да вмъкне запис за CLERK с комисионна 300.
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;
Запитване за таблицата
Сега потърсете таблицата EMP за вмъкнатия по-горе запис и ще откриете, че Стойността на колоната COMM е 0 .
SELECT * FROM EMP WHERE EMPNO = 7499;
Вижте също:
- Научете как да създадете тригер в Oracle SQL Developer
- Създаване на тригери в пример за Oracle Forms