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

Rencontres QGIS 2025

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

#1 Wed 10 May 2017 18:37

Brice Belouin
Juste Inscrit !
Date d'inscription: 10 May 2017
Messages: 8

Récupération d'un ID d'une table pour l'insérer dans une autre

Bonjour

Sur PostgreSQL (avec l'extension PostGIS), je travail sur deux tables : une nommée "Oiseaux" contenant des données d'oiseaux non géoréférencées et une autre nommée "Geometry_ponctuelles" contenant la position géographique de ces oiseaux (donc avec une colonne public.geometry). Sachant que chaque donnée d'oiseau correspond à un point et chaque point correspond à une donnée d'oiseaux. Pour faire le lien entre les deux tables, j'ai créé une colonne dans chaque table qui contient pour chaque donnée, l'identifiant unique auquel la donnée appartient dans l'autre table.

Je ne peut pas géoréférencer ma table "Oiseaux" car j'ai des données en point, en ligne et en polygone. J'ai donc créé une table pour chaque type de géométrie mais je me concentre tout d'abord sur la table des entités ponctuelles.

J'ai créé une vue pour visualiser sur Qgis les données d'oiseaux géoréférencées en point.
Je voudrais créer des règles sur cette vue pour que, depuis Qgis, quand on ajoute, modifie ou supprime une donnée, la modification s'enregistre automatiquement dans les différentes tables. Pour les règles de modification et de suppression, je n'ai pas rencontré de problème mais j'ai du mal à créer la règle d'ajout.

Cela car en plus d'ajouter une ligne dans chaque table (requête que je sais faire), je voudrais, pour faire le lien entre les tables, récupérer l'identifiant unique auquel la donnée appartient sur la table "Oiseaux" et l'insérer dans la colonne de liaison de la table "Geometry_ponctuelles" puis faire l'inverse, c'est à dire : récupérer l'identifiant unique auquel la donnée appartient sur la table "Geometry_ponctuelles" et l'insérer dans la colonne de liaison de la table "Oiseaux".
Je ne sais pas comment faire cela.

Sauriez-vous comment procéder ?

Merci beaucoup

Hors ligne

 

#2 Wed 10 May 2017 22:29

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1159

Re: Récupération d'un ID d'une table pour l'insérer dans une autre

Bonjour,


Je ne peut pas géoréférencer ma table "Oiseaux" car j'ai des données en point, en ligne et en polygone. J'ai donc créé une table pour chaque type de géométrie mais je me concentre tout d'abord sur la table des entités ponctuelles.


Rien ne vous empêche d'ajouter plusieures colonnes géométriques à une table.
Cela n'est, à ma connaissance, considéré comme une mauvaise pratique, mais je peux me tromper.

Dernière modification par tumasgiu (Wed 10 May 2017 22:31)

Hors ligne

 

#3 Thu 11 May 2017 09:22

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Récupération d'un ID d'une table pour l'insérer dans une autre

Bonjour,

D'accord avec Tumasgiu: une seule table avec les colonnes géo nécessaires pour modéliser votre cas.

Pour moi, ce n'est pas une mauvaise pratique en soi: certains outils géo ne verront pas la table car elle a plusieurs colonnes géo, mais des vues permettront de régler ce pb.
Vos mises a jour seront bien plus simples avec ce modèle.

Enfin, lors des requetes en insert (et update), vous pouvez utilisez le mot clé RETURNING <id>, ou <id> est l'identifiant de votre table: ca permet de savoir la valeur de l'id de la ligne insérée (surtout pratique pour les id de type serial)

Nicolas

Hors ligne

 

#4 Thu 18 May 2017 12:51

Brice Belouin
Juste Inscrit !
Date d'inscription: 10 May 2017
Messages: 8

Re: Récupération d'un ID d'une table pour l'insérer dans une autre

Bonjour

Merci pour vos réponses !

En effet ça à l'air de ne pas trop mal fonctionner en mettant plusieurs colonnes de géométrie dans la table "Oiseaux", et ça simplifie les requêtes.

Hors ligne

 

Pied de page des forums

Powered by FluxBB