banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 06 December 2017 16:26

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

QGIS 2.14: Fusion et ajouter une clef primaire

Bonjour,

Je suis sur Qgis 2.14 et je souhaite fusionner des tables qui ont la même structure de table attributaire, ensuite je veux produire une clef primaire sur cette nouvelle table. Le but est d'actualiser cette fusion tout le temps.

1/ J'utilise une base de donnée PostgreSQL/Postgis dont dedans j'importe les tables (avec création d'une clef primaire pour chaque table).


2/ Ensuite je vais dans  "Gestionnaire de base de donnée"  puis je vais faire une requête SQL.

CREATE VIEW "France"."Fusion_zones" AS
  SELECT *
    FROM "France"."Zone_1"
  Union
  SELECT *
    FROM "France"."Zone_2";

Après je veux mettre une requête pour ajouter une colonne "clef primaire" mais du coup pouvez-vous m'indiquer la requête svp et comment l'intégrer dans ma première requête ?

3/ Ensuite cette requête doit se régénérer tout le temps c'est pour cela que j'utilise Create View

A+

Hors ligne

 

#2 Wed 06 December 2017 16:48

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: QGIS 2.14: Fusion et ajouter une clef primaire

Bonjour,

Code:

WITH p1 as ( SELECT *
    FROM "France"."Zone_1"
  Union
  SELECT *
    FROM "France"."Zone_2")
SELECT row_number() over() as pkid, p1.* FROM p1

Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#3 Thu 07 December 2017 12:07

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: QGIS 2.14: Fusion et ajouter une clef primaire

Bonjour,

Merci beaucoup pour votre aide

Est-il possible d'expliquer la requête s'il vous plait surtout le "With"!

Apparemment Create View permet d'actualiser la requête tous le temps alors comment l’intégrer dedans?

A+

Dernière modification par Nosxo (Thu 07 December 2017 12:07)

Hors ligne

 

#4 Thu 07 December 2017 14:03

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: QGIS 2.14: Fusion et ajouter une clef primaire

Bonjour,

https://www.postgresql.org/docs/9.1/sta … -with.html

WITH englobe une requête qui peut être utilisée dans une autre. Dans mon exemple p1 est la première requête, elle est ensuite utilisée dans la deuxième partie.
p1 va renvoyer l'union de vos deux requêtes, ensuite dans la seconde row_number() over() va numéroter de façon incrémentielle chaque ligne de résultat et donc vous donner une valeur numérique unique sans doublons qui permet de créer une clef primaire.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#5 Thu 07 December 2017 14:17

Nosxo
Participant actif
Date d'inscription: 22 Sep 2016
Messages: 50

Re: QGIS 2.14: Fusion et ajouter une clef primaire

Merci beaucoup très intéressant !

J'ai une derniere question :

Si je décide de supprimer par exemple ici France.zone_1 cela affiche un message comme quoi il y a un lien avec la table "Fusion".

Est-il possible de supprimer cette table sans casser le lien (si la remplace après par une même table mais avec un élément en plus).

Je sais c'est pas vraiment très académique smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB