Sobes.tech
Junior

Kas ir trigeri relāciju datu bāzē?

sobes.tech AI

Atbilde no AI

Trigger ir īpaša saglabātas procedūras veids, kas automātiski izpildās kā reakcija uz noteiktu notikumu datu bāzes tabulā vai skatu.

Galvenie notikumi, kas aktivizē trigger:

  • INSERT: Jauna rinda pievienošana.
  • UPDATE: Esošas rindas mainīšana.
  • DELETE: Rindas dzēšana.

Trigger var aktivizēties pirms (BEFORE) vai pēc (AFTER) notikuma izpildes.

Trigger piemēri:

  • Lauku automātiska atjaunošana (piemēram, pēdējās izmaiņas datums).
  • Datu integritātes pārbaude.
  • Izmaiņu reģistrēšana (žurnāls).
  • Saistīto datu kaskādes atjaunošana vai dzēšana.
-- AFTER INSERT trigger izveides piemērs (fiktīva sintakse)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Trigger izsauktās funkcijas piemērs
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;

Priekšrocības:

  • Biznesa loģikas centrālā pārvaldība.
  • Rutīnas uzdevumu automatizācija.
  • Datu integritātes uzlabošana.

Trūkumi:

  • Kļūdu diagnosticēšana ir sarežģīta.
  • Potenciālais ietekme uz veiktspēju.
  • Programmas loģikas sarežģītība, jo daļa tiek pārvietota uz datu bāzes līmeni.