Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trigger
metalog
post 1.09.2011, 15:30:55
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 19.07.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
dmateo
post 21.09.2011, 09:28:25
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 3
Dołączył: 19.05.2009

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 17:47