[Gfoss] Ancora problemi con oid postgis

Luca Delucchi lucadeluge a gmail.com
Mar 22 Apr 2008 12:01:13 CEST


Il giorno mar, 22/04/2008 alle 09.43 +0000, Eugenio Trumpy ha scritto:
> Buongiorno,
> purtroppo mi trovo a ripresentare un problemino che avevo qualche giorno fa e che ancora purtroppo non sono riuscito a risolvere.
> Nella bancadati su cui sto lavorando c'è una tabella spaziale e alcune altre semplici di attributi.
> Ho la necessità di creare delle viste tra la tabella "geometrica" e quelle degli attributi.
> La cosa strana è che per quasi tutte le tabelle sono siuscito a creare le viste per poi visualizzarele con qgis, mentre per un paio di tabelle 
> non c'è verso, ottengo sempre il solito messaggio di errore:
> 
> La vista 'public.pozzi_condt'  non ha una colonna utilizzabile come chiave univoca.
> Qgis richiede che la vista abbia una colo nna utilizzabile come chiave univoca. 
> Tale colonna deve derivare da una tabella con una colonna di tipo int4 ed essere una chiave primaria, essere univoca, oppure una colonna di tipo oid PostgreSQL. Inoltre, al fine di avere maggiori performance la colonna dovrebbe essere anche indicizzata.
> La vista selezionata ha queste colonne, nessuna di esse soddisfa le seguenti condizioni:
> .....
> 'key' deriva da 'public.condt.key' e non è utilizzabile (il tipo è int4 e non è utilizzabile come vincolo)
> ....
> 'oid' deriva da 'public.condt.id_condt' e non è utilizzabile (il tipo è int4 e non è utilizzabile come vincolo)
> 'the_geom' deriva da 'public.pozzi_corr_news.the_geom' e non è utilizzabile (il tipo è geometry e non è utilizzabile come vincolo)
> successivamente:
> "public"."pozzi_condt" (the_geom) sql=GeometryType("the_geom") IN ('POINT','MULTIPOINT') è un layer non valido e non può essere caricato.
> 
> riassumendo:
> key è la chiave primaria della tabella spaziale, serve a legare la stessa con tutte le tabelle attrributi,
> oid invece è la chiave primaria delle varie tabelle attributi. La procedura che ho usato è stata identica per tutte le viste che ho creato.
> Ho aggiunto, perchè non era presente, un oid tramite phppgadmin alle tab attributi, (ho notato però che con phppgadmin questo campo nuovo non viene visualizzato mentre con 
> pgadmin si, e risulta perfettamente numerato con valori univoci), 
> successivamente sempre con phppgadmin creo la vista utilizzando le 2 tabelle d'interesse (spaziale e non, selezionando il campo the_geom dalla prima),
> e tutto sembra a posto, ma se visualizzo la vista con phppgadmin la tabella è formattata male, nel senso che c'è un campo senza intestazione...non so se è regolare...???...
> con pgadmin ho tutte le intestazioni corrette compreso l'oid. Osservando bene quel campo, vedo che:
> non c'è una numerazione completa degli oid, cosa che dovrebbe essere e in più un record è ripetuto 2 volte, infatti non essendo più univoco il campo non mi si visualizza tale vista 
> in qgis.
> Ho provato anche a reimportare la tabella e a rifare la vista  molte volte...
> 
> Qualcuno ha suggerimenti?
> 

Scusa se aggiungi una colonna nella vista o nella tabella con una chiave
primaria univoca e seriale tipo ALTER TABLE nometabella ADD COLUMN
ID_key serial; ALTER TABLE nometabella ADD primary key (ID_KEY).

Non so se è un procedimento corretto però il risultato dovrebbe
concederti di visualizzare la vista in qgis.

> 
> Eugenio

Luca




Maggiori informazioni sulla lista Gfoss