Sobes.tech
Junior

Wat zijn triggers in een relationele database?

sobes.tech AI

Antwoord van AI

Een trigger is een speciaal type opgeslagen procedure die automatisch wordt uitgevoerd als reactie op een bepaald evenement in een tabel of weergave van de database.

De belangrijkste gebeurtenissen die een trigger activeren:

  • INSERT: Het toevoegen van een nieuwe rij.
  • UPDATE: Het wijzigen van een bestaande rij.
  • DELETE: Het verwijderen van een rij.

Triggers kunnen worden geactiveerd vóór (BEFORE) of na (AFTER) het uitvoeren van het evenement.

Voorbeelden van het gebruik van triggers:

  • Automatisch bijwerken van velden (bijvoorbeeld, datum van de laatste wijziging).
  • Controle van gegevensintegriteit.
  • Registratie van wijzigingen (logging).
  • Cascaderende update of verwijdering van gerelateerde gegevens.
-- Voorbeeld van het maken van een AFTER INSERT trigger (fictieve syntax)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Voorbeeld van een functie die door de trigger wordt aangeroepen
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;

Voordelen:

  • Centralisatie van bedrijfslogica.
  • Automatisering van routinetaken.
  • Verbetering van gegevensintegriteit.

Nadelen:

  • Moeilijkheid bij het debuggen.
  • Potentieel effect op prestaties.
  • Verhoogde complexiteit van de applicatielogica, omdat een deel ervan op het niveau van de database wordt overgedragen.