Vous n'êtes pas identifié(e).

#1 24/01/2012 14:05:47

simolay
Membre

Ajouter une clé primaire à une vue

Bonjour,
je veux ajouter une clé primaire à une vue afin de l’afficher sur QGIS mais j'arrive pas est ce que vous pouvez m'aider.
merci

Hors ligne

#2 24/01/2012 14:17:14

gleu
Administrateur

Re : Ajouter une clé primaire à une vue

Qu'est-ce que vous voulez obtenir exactement ? j'avoue que je ne vois pas bien. Comment est défini votre vue ?


Guillaume.

Hors ligne

#3 24/01/2012 14:36:06

simolay
Membre

Re : Ajouter une clé primaire à une vue

en fait j'ai fait une intersection entre 2 polygones j'ai eu le résultat sous forme de vue, cette vue ne contient pas une clé primaire dans sa table et moi je dois l'ajouter afin de la visualiser sous QGIS.

Hors ligne

#4 24/01/2012 15:02:05

gleu
Administrateur

Re : Ajouter une clé primaire à une vue

Une vue n'est pas une table. Ajouter une clé primaire à une vue n'a pas de sens en soi. À la rigueur, vous pouvez certainement utiliser generate_series pour avoir un numéro autoincrémenté de chaque ligne, mais vous ne serez jamais sûr qu'un numéro correspond toujours à la même ligne de la vue.


Guillaume.

Hors ligne

#5 31/01/2017 18:11:53

Sylvain M.
Membre

Re : Ajouter une clé primaire à une vue

Bonjour à vous,
Je relance ce sujet car j'ai à peu près la même question.
Lorsque l'on affiche une table ou une vue PostGreSQL dans le logiciel QGis, ce dernier nécessite que la table/vue ait une clé primaire. Il est possible de la définir manuellement, mais ce serait plus simple si cela pouvait être pré-défini par la requête de création de la vue.
De mon côté, ce sont plus précisément des "Vue matérialisées" (http://docs.postgresqlfr.org/9.4/rules- … views.html).
Sauriez vous comment faire en sorte que la clé prémiaire soit prédéfinie en SQL ?
Merci à vous.

Sylvain M.

Hors ligne

#6 29/11/2018 14:07:15

RplnySIG
Membre

Re : Ajouter une clé primaire à une vue

Bonjour, l'orque vous faite votre scripte SQL il suffit d'ajouter row_number() OVER () AS oid dans le select comme ci-dessous.

 CREATE OR REPLACE VIEW amenagement.v_conseil_dep_jeunes_communes AS 
 SELECT row_number() OVER () AS oid,
    jeunes.id_membre,
    jeunes.nom,
    jeunes.prenom,
    jeunes.age,
    jeunes.cp,
    jeunes.insee,
    jeunes.ville,
    jeunes.membre_du_ca,
    jeunes.date_d,
    jeunes.date_f,
    jeunes.date_m,
    st_multi(st_union(com.geom))::geometry(MultiPolygon,2154) AS geom
   FROM conseil_dep_jeunes_2018 jeunes
     JOIN architecture.v_communes_topo com ON jeunes.insee = com.code::bpchar
  GROUP BY jeunes.id_membre, jeunes.nom, jeunes.prenom, jeunes.age, jeunes.cp, jeunes.insee, jeunes.ville, jeunes.membre_du_ca, jeunes.date_d, jeunes.date_f, jeunes.date_m, com.geom; 

Hors ligne

#7 08/10/2019 09:58:17

Sylvain M.
Membre

Re : Ajouter une clé primaire à une vue

Bonjour, l'orque vous faite votre scripte SQL il suffit d'ajouter row_number() OVER () AS oid dans le select comme ci-dessous.

Désolé pour le délai, mais UN GRAND MERCI pour ta réponse, RplnySIG : je viens seulement de tester et approuver la méthode.
cool

Hors ligne

Pied de page des forums