Junior
Trigger nima?
sobes.tech AI
AIdan javob
Бақувват — бу маълумотлар базасида махсус сақланадиган процедура бўлиб, муайян воқеа юз берганда автоматик равишда ишга тушади.
Бақувватларни чақирувчи воқеалар одатда қуйидагиларни ўз ичига олади:
INSERT: жадвалга янги қаторлар қўшиш.UPDATE: мавжуд қаторларни ўзгартириш.DELETE: жадвалдан қаторларни ўчириш.
Бақувватлар воқеа билан боғлиқ турли вақтларда ишга тушиши мумкин:
BEFORE: воқеа амалга оширилишигача.AFTER: воқеа амалга оширилгандан кейин.INSTEAD OF: воқеани амалга ошириш ўрнига (одатда кўрсатмалар билан бирга ишлатилади).
Бақувватлардан фойдаланиш мисоллари:
- Маълумотнинг бутунлигини сақлаш: қўшиш/ёзиш вақтида автоматик текшириш ёки ўзгартириш.
- Аудит: маълумот ўзгартиришлар ҳақида маълумотни алоҳида лог жадвалига ёзиб қўйиш.
- Маълумотларни синхронлаштириш: боғланган жадвалларни автоматик янгилаш.
- Муросасиз бизнес қоидаларини амалга ошириш: муайян шартлар бўйича қўшимча ҳаракатларни бошлаш.
Бақувватлар жадвал даражасида белгиланади ва ўзгартирилган қаторнинг эски ва янги қийматларига ишора қилиши мумкин.
-- Синтаксис намунаси (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;
Бақувватлардан эҳтиёт бўлиш муҳим, чунки улар дебаглашни қийинлаштириши ва маълумотлар базасининг ишлаш самарадорлигини пасайтиши мумкин.