Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trigger
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
metalog
Witam.
Potrzebuje na wczoraj trigger który:
Jeśli dodano nowy rekord to sprawdź w innej tabeli czy alarm dla danego id == 1 jesli tak to insert into wiadomosci
lub jeśli zaktualizowano pole "inne_pole" to też sprawdz czy alarm dla danego id == 1 jeśli tak to insert

Problem jest w sprawdzaniu danych z innej tabeli.
Nie proszę o rozwiązanie problemu tylko o pomoc.

Chodzi o mniej więcej taki kod:

if(insert_nowy) { if(sprawdzam_alarm_w_innej_tabelce(id) == 1) insert_into_jeszcze_inna_tabelka(1); }
else if update("inne_pole) { if(sprawdzam_alarm_w_innej_tabelce(id) == 1) insert_into_jeszcze_inna_tabelka(2);}

Z góry dziękuje za pomoc
dmateo
Przykład triggera na insert:
http://www.postgresql.org/docs/9.1/interac...er-example.html

Sprawdzenie czy jest wiersz w innej tabeli:
  1. IF EXISTS ( SELECT 1 FROM inna_tabel WHERE id = NEW.id )


W artykule:

http://www.postgresql.org/docs/9.1/interac...ql-trigger.html

Masz fragment jak dac IF oddzielnie dla inserta i update'a:

  1. IF (TG_OP = 'DELETE') THEN
  2. INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
  3. RETURN OLD;
  4. ELSIF (TG_OP = 'UPDATE') THEN
  5. INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
  6. RETURN NEW;
  7. ELSIF (TG_OP = 'INSERT') THEN
  8. INSERT INTO emp_audit SELECT 'I', now(), user, NEW.*;
  9. RETURN NEW;
  10. END IF;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.