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 13 April 2022 14:31

jlavaure
Participant assidu
Date d'inscription: 20 Apr 2013
Messages: 203

QGIS et PostgreSQL: Copier/Coller et Conservation de la cle primaire

Bonjour,

Voici mon cas :

Nous avons une table dans une BD PostgreSQL avec l'extension PostGIS. Dans les paramétrages de la table j'ai définis un champ "id" comme clé primaire.

Je reçois des données d'un prestataire externe sous forme d'un shp (ou gpkg ou geojson) mais avec exactement la même table attributaire.

Je souhaite simplement copier/coller des entités de la donnée externe (qui respecte un id comme pk) vers ma table postgres. Mais à chaque fois je n'ai pas l'id qui est conservé et je dois l'écrire à nouveau (ça me met NULL). Quand ma clé primaire faire 12 caractères et que j'ai 80 entités à copier/coller et que je dois recopier toutes les clés primaires .... c'est très long.

Savez-vous pourquoi la clé primaire est mise comme NULL et n'est pas conservé lors du copier/coller vers la table PostgreSQL ?

Merci à vous !

Hors ligne

 

#2 Mon 25 April 2022 08:34

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 726

Re: QGIS et PostgreSQL: Copier/Coller et Conservation de la cle primaire

Bonjour,
Il faudrait vérifier côté postgresql que votre champs id est bien une primary key avec une séquence qui s'autoincremente. Si tel est le cas, normalement il n'est pas utile de préremplir le champs id dans suis.

Hors ligne

 

#3 Wed 26 October 2022 11:33

Karine L
Juste Inscrit !
Date d'inscription: 16 Jun 2020
Messages: 7

Re: QGIS et PostgreSQL: Copier/Coller et Conservation de la cle primaire

Bonjour,

nous rencontrons le même problème avec la version QGIS 3.22.7.
En testant, ce problème apparaît dès qu'il y a une contrainte d'unicité dans PostGIS (même si l'id n'est pas clé primaire).

J'ai fait un signalement sur gitHub à la suite d'un signalement de bug similaire.
https://github.com/qgis/QGIS/issues/46467

Pour info, dans l'attente de la résolution de ce bug, nous utilisons la version LTR précédente, la 3.16.4
Le problème ne se pose pas avec cette version.

EDIT : pour info, ce sont des cas où nous copions des données d'une table de travail à une table de production, et nous souhaitons conserver l'id de la table de travail, l'id dans la table de destination ne peut donc pas être auto-incrémenté

Dernière modification par Karine L (Wed 26 October 2022 11:40)

Hors ligne

 

#4 Wed 26 October 2022 15:28

Robin.k
Participant occasionnel
Date d'inscription: 15 Mar 2022
Messages: 45

Re: QGIS et PostgreSQL: Copier/Coller et Conservation de la cle primaire

Pour contourner le problème :

vous pouvez créer un champ ID_Presta dans le shp du prestataire => calcul de champ id sur la couche presta puis créer une colonne id_presta sur votre couche postgis

Copier coller les entités en ignorant les entités invalides, calcul de champ id_presta dans id et enregistrer.

Dernière modification par Robin.k (Wed 26 October 2022 15:30)

Hors ligne

 

Pied de page des forums

Powered by FluxBB