Junior
Kas yra trigeriai reliacinėje duomenų bazėje?
sobes.tech AI
Atsakymas iš AI
Trigger yra specialus saugotos procedūros tipas, kuris automatiškai vykdomas kaip atsakas į tam tikrą įvykį duomenų bazės lentelėje ar vaizde.
Pagrindiniai įvykiai, kurie sukelia trigger:
INSERT: Naujos eilutės įterpimas.UPDATE: Esamos eilutės keitimas.DELETE: Eilutės ištrynimas.
Trigger gali būti aktyvuotas prieš (BEFORE) arba po (AFTER) įvykio vykdymo.
Trigger naudojimo pavyzdžiai:
- Automatinis laukų atnaujinimas (pvz., paskutinio keitimo data).
- Duomenų vientisumo patikrinimas.
- Pakeitimų registravimas (žurnalas).
- Susijusių duomenų kaskadinis atnaujinimas arba ištrynimas.
-- AFTER INSERT trigger sukūrimo pavyzdys (fiktinė sintaksė)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Funkcija, iškviečiama trigger
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;
Privalumai:
- Verslo logikos centravimas.
- Rutinių užduočių automatizavimas.
- Duomenų vientisumo gerinimas.
Trūkumai:
- Klaidų aptikimas sudėtingas.
- Potencialus poveikis našumui.
- Programinės logikos sudėtingumas, nes dalis jos perkeliama į duomenų bazės lygį.