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();

تریگر برای ثبت تاریخ و قواعد داده مفید است، اما منطق پنهان در دیتابیس ممکن است دیباگ و تست را دشوار کند. تغییر تریگر هم بخشی از فرایند مایگریشن است.