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
21.03.2007, 10:11:36
Uważam, że jak w manualu znajdzie się już interesujący rozdział, to można sobie z nim poradzić:
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
2.05.2007, 07:46:55
a w jaki sposob moge zmusisc funkcje aby ta mi zwracala 2 wartosci a nie jedna, bo jak jaj dam:
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
2.05.2007, 22:53:13
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.