PL/SQL行トリガー例文

  • 0
    いいね
  • 0
    コメント

    PL/SQL基礎中の基礎をメモとして残します。

    <<行トリガーの作成>>
    SQL> CREATE OR REPLACE TRIGGER 注文_在庫_TRIG
    2 AFTER INSERT ON 注文 FOR EACH ROW
    3 BEGIN
    4 UPDATE 在庫
    5 SET 在庫数 = 在庫数 - :NEW.注文数
    6 WHERE 製品名 = :NEW.製品名;
    7 END;
    8 /

    行トリガー例。
    ・2行目のタイミングには「BEFORE」もしくは「AFTER」を指定。
     BEFOREであればDML処理の前に起動し、AFTERであればDML処理の後に起動。
    ・3行目のイベントには、トリガーの起動するDML文の種類、 すなわち「INSERT」「UPDATE」「DELETE」
    ・4行目には、このトリガーを設定する表の名前を指定
    ・「ON 表名」の後ろに「FOR EACH ROW」というキーワードがあれば行トリガーであり、なければ、文トリガー。

    ・OLDとNEW

    :OLD.列名 ←DML操作前の列値
    :NEW.列名 ←DML操作後の列値