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.