#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
Hors ligne