Je suis nouveau sur Postgis et QGIS. J'ai créé une vue définie comme
CREATE OR REPLACE VIEW pupr.vstudentmuni AS
SELECT m.id AS munid, m.name AS muname, m.geom, s.code,
(s.name::text || ' '::text) || s.lastname::text AS fullname
FROM pupr.municipio m, pupr.student_location l, pupr.student s
WHERE st_within(l.geom, m.geom) AND s.code = l.code;
dans PostgreSQL. Essayer d'ajouter cette vue à QGIS renvoie l'erreur suivante ...
"Invalid layer"..."sql= is an invalid layer and cannot be loaded."
Je ne sais pas quel est le problème. Le tableau est mentionné dans le geommetry_columns
tableau de PostGIS, mais je peux voir une entrée de message dans QGIS qui dit "Aucun champ clé pour une vue donnée". J'utilise PostgreSQL 9.2 et QGIS 1.8.0.
qgis
postgis
spatial-view
ufeliciano
la source
la source
Réponses:
Lorsque vous ajoutez une vue de PostGIS à QGIS, vous devez spécifier le champ ID unique. À droite du nom du calque, une liste déroulante vous permet de spécifier le champ à utiliser. Si vous n'avez pas de champ ID unique, vous pouvez créer un faux champ ID à l'aide de la fonction de fenêtre row_number () dans la requête qui crée votre vue.
la source
Aujourd'hui, je suis tombé sur cette erreur avec une vue créée à partir d'une jointure entre des tables. Il a fini par avoir deux champs uniques qui ont bouleversé QGis. Au départ, la vue était comme:
De cette façon, il y avait deux champs de clé primaire dans la vue. Au lieu de cela, j'ai dû spécifier les champs résultants, afin de finir par un candidat de champ unique pour l'identifiant unique:
la source