Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Triggery i funkcje - jak? gdzie? jak to ugryźc?
Luke_Star
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


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ć).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




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
Go to the top of the page
+Quote Post
erhaminus
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.01.2007

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


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.
Go to the top of the page
+Quote Post
jezoo
post
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 4.04.2006

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


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 ?
Go to the top of the page
+Quote Post
likemandrake
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


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
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #6


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


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

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

 



RSS Aktualny czas: 25.08.2025 - 04:06