PL/SQL行トリガー例文
この記事はQiitaにも記載しております PL/SQL行トリガー例文 - Qiita
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操作後の列値
参考サイト
連載 PL/SQLを使ってみよう!第38回「文トリガー、行トリガーの構文」 | 集合研修 システム・テクノロジー・アイ銀座会場