Trigger aktualizujący tabele |
Trigger aktualizujący tabele |
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 |
|
|
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 ?
|
|
|
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 |
|
|
29.01.2015, 08:16:04
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: 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). |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 18:23 |