すべての条件が満たされたとき、またはいずれかの条件が満たされたときにトリガーするかどうかに応じて、 OR
or - を使用して単一の式を形成します。AND
CREATE TRIGGER update_day_summations -- see below
BEFORE UPDATE ON freeradius.day_guiding_usage
FOR EACH ROW
WHEN (OLD.col1 IS DISTINCT FROM NEW.col1
OR OLD.col2 IS DISTINCT FROM NEW.col2
OR OLD.col3 IS DISTINCT FROM NEW.col3)
EXECUTE procedure update_sessioninfo();
これは単なるブール式であり、行のすべての列を含めることができます。
ただし、あなたの表現は に対してのみ意味を持ち、 に対しては意味がUPDATE
ありませんINSERT
。OLD
挿入の記録はありません。のマニュアルCREATE TRIGGER
:
condition
トリガー関数が実際に実行されるかどうかを決定するブール式。が指定されている場合、 が を返すWHEN
場合にのみ関数が呼び出されます。トリガーでは、
条件は、またはをそれぞれ記述して、古い行値および/または新しい行値の列を参照できます。もちろん、
トリガーは を参照できず、トリガーは を参照できません。condition
true
FOR EACH ROW
WHEN
OLD.
column_name
NEW.
column_name
INSERT
OLD
DELETE
NEW
また、トリガー名自体をスキーマ修飾することはできません。マニュアルをもう一度引用します。
name
新しいトリガーに付ける名前。これは、同じテーブルの他のトリガーの名前とは異なる必要があります。名前
をスキーマ修飾することはできません
大胆強調鉱山。