この記事では、OracleトリガーでWHEN句を使用して、指定された条件でトリガーを起動する方法を学習します。以下に例を示します。
このトリガーの例をテストするには、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) ) /
WHEN句を使用してOracleデータベーストリガーを作成する
次のトリガーは、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テーブルの挿入ステートメントは、手数料300のCLERKのレコードを挿入しようとします。
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;
関連項目:
- OracleSQLDeveloperでトリガーを作成する方法を学ぶ
- OracleFormsの例でトリガーを作成する