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.