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;