QGIS, Postgis: est-il possible de créer une nouvelle couche postgis?

8

Situation:

J'ai un lay vector postgis qui a beaucoup de segments de ligne (les fonctionnalités). Je veux créer un ensemble de nouveaux calques, chacun contenant un sous-ensemble des fonctionnalités du calque d'origine et avoir ces calques également stockés dans des postgis. Idéalement avec les fonctionnalités réelles stockées une seule fois.

La seule façon dont je peux voir pour créer un nouveau calque au lieu d'en charger un à partir d'une source est via Layer-> new qui donne une option de shapefile ou spatialite.

En choisissant le fichier de forme, j'ai d'abord essayé de spécifier les attributs gid et fid pour le nouveau calque, mais SPIT se plaint de dupliquer le champ gid lorsque j'essaie de le charger dans postgis.

Si je ne crée aucun attribut pour le nouveau calque, SPIT le charge joyeusement, dupliquant vraisemblablement toutes les fonctionnalités.

Je suppose que c'est une «fonctionnalité» plutôt qu'une omission, car s'il était possible de partager des fonctionnalités entre les couches, que se passerait-il si une fonctionnalité était divisée? Si les choses devaient fonctionner correctement, toutes les couches référencées avec cette fonctionnalité devraient être mises à jour avec le nouveau gid de la nouvelle partie.

Cette interprétation est-elle correcte?

Russell

Russell Fulton
la source
1
Il n'y a pas de fonctionnalité partagée. Vous n'avez que deux copies, divisez l'une et l'autre reste la même.
Nathan W
J'ai pensé que c'était probablement le cas. Mon problème est qu'au fil des ans, j'ai été complètement endoctriné avec le modèle relationnel et la normalisation des données;)
Russell Fulton

Réponses:

4

À l'aide du plug-in PostGIS Manager, vous pouvez créer de nouvelles tables dans une base de données PostGIS.

Vous pouvez également exécuter des instructions SQL telles que

CREATE TABLE new_table AS SELECT * FROM old_table

pour dupliquer une table.

obscur
la source
7

Il s'agit d'une question un peu plus ancienne et la bonne réponse a changé avec les versions récentes de QGIS.

PostGIS Manager a été déconseillé et remplacé par DB Manager qui fonctionne à la fois pour PostGIS et SpatiaLite.

DB Manager est installé par défaut et accessible sous l' Database > DB Managerentrée de menu. Cela ouvrira la fenêtre DB Manager.

Sélectionnez également la base de données à laquelle vous souhaitez ajouter une couche, puis cliquez sur Table > Create table. Si aucune base de données n'est sélectionnée lorsque vous cliquez sur l'entrée de menu Table, l'option de création de table ne sera pas là.

Cela ouvrira la boîte de dialogue de création de table qui est très similaire à celle accessible par Layer > New > New SpatiaLiteLayer mais avec une disposition différente.

Les options sont généralement les mêmes, la plus grande différence étant que la boîte de dialogue Nouvelle couche spatiale permet d'accéder à la boîte de dialogue Spécifier CRS, ce qui facilite la sélection de votre système de coordonnées. La boîte de dialogue Créer une table nécessite que vous connaissiez au préalable le numéro SRID pour le saisir.

Gregory Arenius
la source