Sobes.tech
Junior

Mi azok a triggerek egy relációs adatbázisban?

sobes.tech MI

Válasz az MI-től

A trigger egy speciális típusú tárolt eljárás, amely automatikusan végrehajtódik egy adott esemény hatására az adatbázis táblájában vagy nézetében.

A trigger aktiválását kiváltó fő események:

  • INSERT: Új sor beszúrása.
  • UPDATE: Egy meglévő sor módosítása.
  • DELETE: Egy sor törlése.

A trigger-ek az esemény végrehajtása előtt (BEFORE) vagy után (AFTER) aktiválódhatnak.

A trigger-ek használatának példái:

  • Automatikus mezőfrissítés (pl. utolsó módosítás dátuma).
  • Adatintegritás ellenőrzése.
  • Változások naplózása.
  • Kapcsolódó adatok kaszkád módosítása vagy törlése.
-- Példa egy AFTER INSERT trigger létrehozására (kitalált szintaxis)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- A trigger által hívott függvény példája
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;

Előnyök:

  • Üzleti logika központosítása.
  • Rutinszerű feladatok automatizálása.
  • Az adatok integritásának növelése.

Hátrányok:

  • Hibakeresés nehézsége.
  • Potenciális hatás a teljesítményre.
  • Az alkalmazás logikájának bonyolultsága, mivel egy része az adatbázis szintjére kerül.