Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PostgreSQL]problem z triggerem przed delete
-Bandzi-
post 6.09.2012, 16:58:52
Post #1





Goście







Czesc,

Mam nastepujacy problem - w mojej bazce chcialbym zeby po usunieciu rekordu z tabeli 'eventy' usuwane byly wczesniej wszystkie wpisy z tabeli 'powiazania'.
Tabela powiazania sluzy do przyporzadkowania uczestnikow z innej tabeli do odpowiednich eventow.
Kolumny tabeli powiazania to id_powiazania (klucz glowny), id_eventu (klucz obcy), id_uczestnika (klucz obcy). Kolumny tabeli eventy chyba nieistotne.
Zrobilem taki trigger:
  1. CREATE TRIGGER usun_powiazania_event BEFORE DELETE ON eventy FOR EACH ROW EXECUTE PROCEDURE delete_pow_eve();

i taka funkcje:
  1. CREATE FUNCTION delete_pow_eve() RETURNS TRIGGER AS '
  2. BEGIN
  3. DELETE FROM powiazania WHERE id_eventu=OLD.id_eventu;
  4.  
  5. RETURN NULL;
  6. END;
  7. ' LANGUAGE 'plpgsql';


Niestety uniemozliwia to w ogole usuwanie czegokolwiek z tabeli eventy, w dodatku nie zwracany jest zaden blad a jedynie DELETE 0. Co robie nie tak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post 6.09.2012, 18:59:47
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Wydaje mi się, że błędem jest zwracanie NULL, zamiast OLD.
Po wtóre problem ten możesz rozwiązać kluczem obcym + ON DELETE CASCADE
Go to the top of the page
+Quote Post

Posty w temacie


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: 28.06.2025 - 01:23