Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Trigger aktualizujący tabele
Dalost
post 24.01.2015, 16:46:03
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.01.2015

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


Dzień dobry

Chciałbym was prosić o pomoc. Mam problem z napisaniem triggera, który pozwoli mi aktualizować tabelę po każdej zmianie.
Mam tabelę budynki, która zawiera kolumny: id, typ i geom. Jest to przestrzenna baza danych
Druga tabela zlicza mi statystyki z tabeli pierwszej np. powierzchnię wszystkich budynków, obwód itd.

Moje pytanie brzmi jak napisać wyzwalacz który pozwoli automatycznie aktualizować dane w tabeli drugiej jest coś zmieni się w tabeli 1.

Mi udało się zrobić tylko coś takiego:

CREATE OR REPLACE TRIGGER aktualizacja
BEFORE INSERT OR DELETE OR UPDATE
ON blok_2.analiza_polygon
FOR EACH ROW

BEGIN
update analiza_polygon
set
ilosc = (select count(*)
from budynki
WHERE
typ_b ='budynek użyteczności publicznej' )
WHERE typ = 'budynek użyteczności publicznej'
END
Go to the top of the page
+Quote Post
pasman
post 24.01.2015, 21:29:19
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 4
Dołączył: 16.03.2012

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


Jaki masz komunikat błędu ?
Go to the top of the page
+Quote Post
Dalost
post 25.01.2015, 10:35:49
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.01.2015

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


Nie wiem dlaczego wyskakuje mi taki komunikat

BŁĄD: błąd składni w lub blisko "TRIGGER"
LINE 1: CREATE OR REPLACE TRIGGER aktualizacja
^
********** Błąd **********

BŁĄD: błąd składni w lub blisko "TRIGGER"
Stan SQL: 42601
Znak: 19
Go to the top of the page
+Quote Post
phpion
post 29.01.2015, 08:16:04
Post #4





Grupa: Moderatorzy
Postów: 6 062
Pomógł: 857
Dołączył: 10.12.2003
Skąd: Sosnowiec, Dąbrowa Górnicza




W Postgresie nie ma OR REPLACE dla triggera:
http://www.postgresql.org/docs/9.1/static/...atetrigger.html
Musisz zatem najpierw usunąć trigger, a potem na nowo go stworzyć:
http://www.postgresql.org/docs/9.1/static/...roptrigger.html (najlepiej z IF EXISTS).
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: 19.07.2018 - 05:16