Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: 3163
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: 3163
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