Junior
Mis on triggereid relatsioonilises andmebaasis?
sobes.tech AI
Vastus AI-lt
Trigger on spetsiaalne salvestatud protseduur, mis automaatselt täidetakse vastusena kindlale sündmusele andmebaasi tabelis või vaates.
Peamised sündmused, mis käivitavad triggeri:
INSERT: Uue rea lisamine.UPDATE: Eksisteeriva rea muutmine.DELETE: Rea kustutamine.
Triggerid võivad käivituda enne (BEFORE) või pärast (AFTER) sündmuse täitmist.
Triggerite kasutamise näited:
- Väli automaatne uuendamine (näiteks viimase muutmise kuupäev).
- Andmete terviklikkuse kontroll.
- Muudatuste logimine.
- Seotud andmete kaskaadne uuendamine või kustutamine.
-- AFTER INSERT triggeri loomise näide (mõttetu süntaks)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Funktsioon, mida trigger kutsub
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;
Eelised:
- Äri-logika keskne haldus.
- Rutiinsete ülesannete automatiseerimine.
- Andmete terviklikkuse parandamine.
Puudused:
- Veaotsing keeruline.
- Võimalik mõju jõudlusele.
- Tarkvara keerukus, kuna osa logikast liigub andmebaasi tasandile.