Sobes.tech
Junior

Relatsion bazalarida triggerlar nima?

sobes.tech AI

AIdan javob

Trigger — bu maʼlum bir voqeaga avtomatik ravishda bajariladigan maxsus saqlash protsedurasi turi.

Triggerni chaqiradigan asosiy voqealar:

  • INSERT: Yangi satr qoʻshish.
  • UPDATE: Mavjud satrni oʻzgartirish.
  • DELETE: Satrni oʻchirish.

Triggerlar voqeani bajarishdan oldin (BEFORE) yoki keyin (AFTER) ishga tushishi mumkin.

Triggerlardan foydalanish misollari:

  • Maydonlarni avtomatik yangilash (masalan, oxirgi oʻzgarish sanasi).
  • Maʼlumotlarning yaxlitligini tekshirish.
  • Oʻzgarishlarni yozib borish (loglash).
  • Bogʻlangan maʼlumotlarni kaskad tarzda yangilash yoki oʻchirish.
-- AFTER INSERT triggerini yaratish misoli (taxminiy sintaksis)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Trigger tomonidan chaqiriladigan funktsiya misoli
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
  INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
  VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

Afzalliklari:

  • Biznes mantiqini markazlashtirish.
  • Rutinniy vazifalarni avtomatlashtirish.
  • Maʼlumotlarning yaxlitligini oshirish.

Kamchiliklari:

  • Xatolarni aniqlash qiyin.
  • Ishlashga potentsial taʼsir.
  • Dastur mantiqini murakkablashtirish, chunki uning bir qismi maʼlumotlar bazasi darajasiga koʻchiriladi.