Trigger عملیاتی است که موتور دیتابیس هنگام رخدادهایی مانند INSERT یا UPDATE اجرا میکند.
ثبت تاریخچه تغییرات یک جدول میتواند با Trigger انجام شود.
محدودیتها و جزئیات
منطق پنهان در Trigger ممکن است Debug و پیشبینی هزینه Query را دشوار کند.
نمونه تریگر ثبت تاریخ تغییر
-- PostgreSQL: function and trigger
CREATE FUNCTION touch_updated_at() RETURNS trigger AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER orders_touch BEFORE UPDATE ON orders
FOR EACH ROW EXECUTE FUNCTION touch_updated_at();
تریگر برای ثبت تاریخ و قواعد داده مفید است، اما منطق پنهان در دیتابیس ممکن است دیباگ و تست را دشوار کند. تغییر تریگر هم بخشی از فرایند مایگریشن است.