Junior
Čo sú to triggere v relačnej databáze?
sobes.tech AI
Odpoveď od AI
Trigger je špeciálny typ uloženého postupu, ktorý sa automaticky vykonáva ako reakcia na určitú udalosť v tabuľke alebo pohľade databázy.
Hlavné udalosti, ktoré spúšťajú trigger:
INSERT: Vloženie nového riadku.UPDATE: Zmena existujúceho riadku.DELETE: Vymazanie riadku.
Trigger môže byť aktivovaný pred (BEFORE) alebo po (AFTER) vykonaní udalosti.
Príklady použitia triggerov:
- Automatická aktualizácia polí (napríklad dátumu poslednej zmeny).
- Kontrola integrity dát.
- Záznam zmien (logovanie).
- Kaskádová aktualizácia alebo vymazanie súvisiacich dát.
-- Príklad vytvorenia AFTER INSERT triggeru (fiktívna syntax)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Príklad funkcie volanej triggerom
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;
Výhody:
- Centralizácia podnikovej logiky.
- Automatizácia rutinných úloh.
- Zvýšenie integrity dát.
Nevýhody:
- Ťažkosti pri ladení.
- Potenciálny vplyv na výkon.
- Zložitosť logiky aplikácie, pretože časť je presunutá na úroveň databázy.