Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
QGIS a POSTGRESQL
09-01-2026, 15:17,
#1
QGIS a POSTGRESQL
Witam, 
jestem relatywnie nowym użytkownikiem QGIS i jeszcze młodszym użytkownikiem PostgreSQL (obsługiwanym przy pomocy pgAdmin 4)
Mam problem, ponieważ w bazie danych mam schemat swde, a w nim tabele o nazwie dzialki (problem jest o tyle skomplikowany, że tabela ta jest powiązana z innymi tabelami w innych schematach, a mianowicie wywoływane są w nich wyzwalacze, że podczas dodawania obiektów automatycznie zaczytują się nr działek, na których wrysowywany jest obiekt). 
Problem polega na tym, że moja warstwa dzialki jest już dość nieaktualna, bo ma ponad 3 lata
A ja chciałbym ją zaktualizować, ale zrobić to nie poprzez dodanie nowej tabeli ze wszystkimi działkami, tylko poprzez aktualizację istniejącej ww. tabeli "dzialki", aby zachować wszystkie inne funkcje, które wyzwalane są w innych tabelach przy wykorzystaniu tabeli "dzialki"
Udało mi się pobrać plik z warstwą działek (SHP) dla całego powiatu, który mnie interesuje i udało mi się zdiagnozować, które konkretnie obszary wymagają aktualizacji, ale nie wiem jak to zrobić, żeby przez przypadek nie uszkodzić tabeli, wyzwalaczy, schematu czy nawet całej bazy danych.

Będę wdzieczny za każdą pomoc / sugestie / rozwiązanie, która doprowadzi mnie do zrealizowania zadania Wink
26-01-2026, 18:49,
#2
RE: QGIS a POSTGRESQL
Ciężko powiedzieć tak w ciemno, ale prosto raczej nie będzie.
Musisz przeanalizować zależności pomiędzy tabelą działek a innymi tabelami, które są z nią w relacjach.
Najprawdopodobniej wykorzystują tylko klucz główny/identyfikator z tabeli działek i w tych tabelach zapisywany jest ten numer jako klucz obcy. To komplikuje sprawę, najpierw musiałbyś pozbyć się tych relacji, potem wyczyścić te klucze. Inaczej prawdopodobnie nie będziesz mógł wyczyścić tabeli działek. Następnie czyścisz tabelę działek, aktualizujesz ją kompletem danych z SHP (tabela w bazie może zawierać więcej atrybutów, wymagalnych przez system/bazę danych).
Odtworzyć wartości i włączyć relacje. Triggery możesz wyłączyć w trakcie tych operacji i np. wymusić ich wykonania po wszystkich (żeby zaktualizować dane)
Im więcej zależności tym proces może być trudniejszy do realizacji.
I raczej wszelakie operacji robiłbym na kopii bazy


Skocz do: