Sobes.tech
Junior

Kas yra triggeris?

sobes.tech AI

Atsakymas iš AI

Trigeris yra speciali saugoma procedūra duomenų bazėje, kuri automatiškai vykdoma, kai įvyksta tam tikras įvykis.

Įvykiai, kurie dažniausiai sukelia trigerius, apima:

  • INSERT: naujų eilučių pridėjimas į lentelę.
  • UPDATE: esamų eilučių keitimas lentelėje.
  • DELETE: eilučių ištrynimas iš lentelės.

Trigiai gali būti aktyvuojami skirtingu laiku, priklausomai nuo įvykio:

  • BEFORE: prieš įvykio vykdymą.
  • AFTER: po įvykio vykdymo.
  • INSTEAD OF: vietoje įvykio vykdymo (dažnai naudojama su vaizdais).

Pavyzdžiai, kaip naudoti trigerius:

  1. Duomenų vientisumo palaikymas: automatinė duomenų patikra ar keitimas įterpimo/arba atnaujinimo metu.
  2. Auditavimas: informacijos apie duomenų pakeitimus įrašymas į atskirą žurnalo lentelę.
  3. Duomenų sinchronizavimas: automatinis susijusių lentelių atnaujinimas.
  4. Sudėtingų verslo taisyklių vykdymas: papildomų veiksmų inicijavimas tam tikromis sąlygomis.

Trigiai yra apibrėžti lentelės lygyje ir gali nurodyti į pakeistos eilutės senas ir naujas reikšmes.

-- Sintaksės pavyzdys (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;

Svarbu naudoti trigerius atsargiai, nes jie gali apsunkinti klaidų paiešką ir paveikti duomenų bazės našumą.