Forum QGIS

Pełna wersja: Wczytanie widoku z Postgis
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Próbuję wczytać do QGIS'a widok z Postgis.
Definicja widoku wyglada nastepujaco:

SELECT droga.gid, droga.the_geom
FROM "Drogi" droga, "Znak" z
WHERE droga."Numer" = z."Numer_dr";

Przy próbie wczytania widoku do QGIS pojawia sie informacja:
"has no column suitable for use as a unique key.
Quantum GIS requires that the view has a column that can be used as a unique key. Such a column should be derived from a table column of type int4 and be a primary key, have a unique constraint on it, or be a PostgreSQL oid column"

Nie potrafie sobie z tym poradzic żeby wczytać tą warstwę.

Pozdrawiam
Musisz mieć jedną kolumnę z unikalnymi wartościami, w tym przypadku drogi.gid. Sprawdź czy w tej kolumnie nie powtarzają się wartości.
Nie pamiętam czy to musi być koniecznie kolumna INT4, wydaje mi się że inne mi kiedyś też działały, ale na pewno nie może mieć powtarzających się wartości.
Najlepiej jak w źródłowej tabeli ta kolumna jest kluczem głównym.
drogi.gid są kluczem głównym tabeli Drogi.

Zauważyłem że wynik samego selekta

SELECT droga.gid, droga.the_geom
FROM "Drogi" droga

wykonuje się i dodaje do QGIS'a bez zadnych błędów.

A kiedy dodam drugą część SQL to przy dodawaniu do QGIS pojawia sie opisany błąd.
Podejrzyj sobie tego selekta (wynik w postaci tabeli) bezpośrednio w bazie, np. za pomocą pgAdmina i zobacz czy gidy się nie powtarzają. Może jest tak, że numery drogi w tej drugiej tabeli się powtarzają i w wyniku działania WHERE jest brany kilka razy ten sam rekord z tabeli drogi, skutkiem czego gid się powtarza. W tabeli drogi jest unikalny, ale w selekcie już nie.