sql >> データベース >  >> RDS >> Oracle

OracleTriggerWHEN句の例

    この記事では、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の例でトリガーを作成する
    1. 文字列がJSONであるかどうかをテストする方法は?

    2. mysqldumpのベストプラクティス:パート2 –移行ガイド

    3. MySQL:グループ関数の無効な使用

    4. pythonオブジェクトをpickleを使用してpostgresテーブルに保存する