SQL DDL:トリガー定義

CREATE TRIGGER

基本構文

CREATE (OR REPLACE) TRIGGER トリガー名
(BEFOR/AFTER/INSTEAD OF)
(INSERT/UPDATE [OF 列名]/DELETE) (OR INSERT/OR UPDATE [OF 列名]/OR DELETE) ON 表名
(FOR EACH ROW)
DECLARE
BEGIN
 ~;
EXCEPTION
 ~;
END;

CREATE OR REPLACE TRIGGER TEST
AFTER INSERT OR UPDATE OF 列名 ON 表名 FOR EACH ROW
BEGIN
 IF INSERT THEN
  UPDATE 表名 SET 列名 = ~;
 ELSIF
  UPDATE 表名 SET 列名 = ~;
 END IF;
 
 UPDATE 表名 SET 列名 = ~;
END;

トリガーの実行タイミング

BEFOR
SQL実行前
AFTER
SQL実行後
INSTEAD OF
SQLを実行せずにトリガーのみ実行

実行回数

FOR EACH ROW
SQL文によって複数行のデータが操作された場合、
行数文トリガーを実行する
「FOR EACH ROW」指定が無い場合は、1回のSQL文で1回のみトリガー実行実行

ALTER TRIGGER

トリガーの有効/無効 切り替え
ALTER TRIGGER TEST ENABLE;
ALTER TRIGGER TEST DISABLE;

DROP TRIGGER

トリガーの削除
DROP TRIGGER TEST;

次の記事

SQL DDL:表領域