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
Jaki masz komunikat błędu ?
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
W Postgresie nie ma OR REPLACE dla triggera:
http://www.postgresql.org/docs/9.1/static/sql-createtrigger.html
Musisz zatem najpierw usunąć trigger, a potem na nowo go stworzyć:
http://www.postgresql.org/docs/9.1/static/sql-droptrigger.html (najlepiej z IF EXISTS).
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)