すべての条件が満たされたとき、またはいずれかの条件が満たされたときにトリガーするかどうかに応じて、 ORor - を使用して単一の式を形成します。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場合にのみ関数が呼び出されます。トリガーでは、
条件は、またはをそれぞれ記述して、古い行値および/または新しい行値の列を参照できます。もちろん、
トリガーは を参照できず、トリガーは を参照できません。conditiontrueFOR EACH ROWWHENOLD.column_nameNEW.column_nameINSERTOLDDELETENEW
また、トリガー名自体をスキーマ修飾することはできません。マニュアルをもう一度引用します。
name
新しいトリガーに付ける名前。これは、同じテーブルの他のトリガーの名前とは異なる必要があります。名前
をスキーマ修飾することはできません
大胆強調鉱山。