Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Hors ligne
Pages : 1