Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Triggery i funkcje - jak? gdzie? jak to ugryźc?
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Luke_Star
Przeszukałem polska dokumentacje Postgre... jednym słowem bieda. W angielskim podręczniku szybko sie pogubiłem. Aczkolwiek po dośc intensywnych poszukiwaniach za pomoca google doszłem do paru kiepsko opisanych przykładów. Czy posiadacie linki do jakichś interesujących artów, lub ebooki dotyczace trigerów i funkcji? Postgre daje wiele mozliwości ale nie wiem jak sie do tego wziąść bo nie mam materiałów które byłyby dla mnie użyteczne. Możliwe ze uznacie ten temat za prośbe lamy która chciałaby wszystko miec podane na tacy, niestety moja desperacja ośiagnęła juz szczyty. Jęzeli wy mi nie pomozecie to moge juz zaopmniec o PgSQL... chyab ze kupie książke za stówe (ale narazie mnie nie stać).
DeyV
Uważam, że jak w manualu znajdzie się już interesujący rozdział, to można sobie z nim poradzić:

http://www.postgresql.org/docs/8.1/interactive/triggers.html

http://www.postgresql.org/docs/8.1/interactive/plpgsql.html
http://www.postgresql.org/docs/8.1/interactive/xplang.html
erhaminus
Też to przerabiałem (rozumiem twój ból).

Generalnie jestem na etapie następującym:

Tworzysz trigger, który wywołuje "funkcję trigger".

Funkcja trigger teoretycznie nie może przyjmować parametrów, ale praktycznie może, poprzez odwołanie do tablicy parametrów (coś a` la args[] z C++).

Funkcja trigger zwraca trigger. Oczywiście jest to poza tym normalna funkcja, która może robić to na co akurat masz ochotę.

Co ważne, trigger można wyłączyć/włączyć.

Triggery założone na różnych tabelach mogą wywoływać tą samą funkcję - to oczywiste - ale możesz założyć trigger o tej samej nazwie na innej tabeli z wywołaniem innej funkcji i też bangla.

Dodałbym kilka przykładów ale kurczak nie mam akurat źródeł pod ręką.

Jak masz pytania - wal śmiało, jak będę wiedział - odpowiem.
jezoo
a w jaki sposob moge zmusisc funkcje aby ta mi zwracala 2 wartosci a nie jedna, bo jak jaj dam:
  1. CREATE FUNCTION costam()
  2. returns char,char AS 'select imie,adres from lista;' LANGUAGE 'sql';

to mi wywala, ze jest blad przy char, po returns
jest jakas mozliwosc aby mi funkcja zwrucila te 2 wartosci czy trzeba kombinowac w inny sposob ?
likemandrake
Ogólnie w programowaniu jest tak, ze zwracana jest zawsze jedna zmienna (typ danych). Zeby przy funkcji return zwrocic wiecej danych trzeba to zrobic w postaci obieku lub tablicy najprosciej, nie stosowałem tego w praktyce, więc tu raczej nie pomogę, lecz znalazłem ciekawy link, ktory mam nadzieje poprowadzi Cie w dobra strone.

Link

Pozdrawiam serdecznie
Zbłąkany
Cytat(jezoo @ 2.05.2007, 08:46:55 ) *
a w jaki sposob moge zmusisc funkcje aby ta mi zwracala 2 wartosci a nie jedna, bo jak jaj dam:
  1. CREATE FUNCTION costam()
  2. returns char,char AS 'select imie,adres from lista;' LANGUAGE 'sql';

to mi wywala, ze jest blad przy char, po returns
jest jakas mozliwosc aby mi funkcja zwrucila te 2 wartosci czy trzeba kombinowac w inny sposob ?

Przeczytaj to, zwróć szczególną uwagę na punkt 10.20
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-2025 Invision Power Services, Inc.