Sobes.tech
Junior

Trigger nima?

sobes.tech AI

AIdan javob

Бақувват — бу маълумотлар базасида махсус сақланадиган процедура бўлиб, муайян воқеа юз берганда автоматик равишда ишга тушади.

Бақувватларни чақирувчи воқеалар одатда қуйидагиларни ўз ичига олади:

  • INSERT: жадвалга янги қаторлар қўшиш.
  • UPDATE: мавжуд қаторларни ўзгартириш.
  • DELETE: жадвалдан қаторларни ўчириш.

Бақувватлар воқеа билан боғлиқ турли вақтларда ишга тушиши мумкин:

  • BEFORE: воқеа амалга оширилишигача.
  • AFTER: воқеа амалга оширилгандан кейин.
  • INSTEAD OF: воқеани амалга ошириш ўрнига (одатда кўрсатмалар билан бирга ишлатилади).

Бақувватлардан фойдаланиш мисоллари:

  1. Маълумотнинг бутунлигини сақлаш: қўшиш/ёзиш вақтида автоматик текшириш ёки ўзгартириш.
  2. Аудит: маълумот ўзгартиришлар ҳақида маълумотни алоҳида лог жадвалига ёзиб қўйиш.
  3. Маълумотларни синхронлаштириш: боғланган жадвалларни автоматик янгилаш.
  4. Муросасиз бизнес қоидаларини амалга ошириш: муайян шартлар бўйича қўшимча ҳаракатларни бошлаш.

Бақувватлар жадвал даражасида белгиланади ва ўзгартирилган қаторнинг эски ва янги қийматларига ишора қилиши мумкин.

-- Синтаксис намунаси (SQL)
CREATE TRIGGER audit_log
AFTER INSERT ON users
FOR EACH ROW
BEGIN
    INSERT INTO audit (user_id, action, timestamp)
    VALUES (NEW.id, 'insert', NOW());
END;

Бақувватлардан эҳтиёт бўлиш муҳим, чунки улар дебаглашни қийинлаштириши ва маълумотлар базасининг ишлаш самарадорлигини пасайтиши мумкин.