On Thu, Feb 22, 2018 at 08:57:37AM -0700, Massimiliano Moraca wrote:

> /UPDATE tabella_dissolvenza
> SET gemetry = (SELECT ST_Union(geometry) as gemetry, tipo FROM
> tabella_dissolvenza GROUP BY tipo);/

> 
> Giustamente mi compare questo messaggio /ERRORE:  la sottoquery deve
> restituire solo una colonna/ Il messaggio è chiarissimo e ci sarei dovuto
> arrivare prima.
> 
> La mia domanda è(finalmente!): c'è un modo per aggiornare in automatico le
> geometrie del vettore in cui ho applicato la dissolvenza o mi tocca rifare
> le tabella(che tramuterei in view a questo punto)?

Se il numero dei tipi e' lo stesso di prima puoi aggiornare
la tabella cosi':

  WITH nuova_tabella_dissolvenza AS (
    SELECT ST_Union(geometry) as gemetry, tipo FROM
    tabella_dissolvenza GROUP BY tipo
  )
  UPDATE tabella_dissolvenza o
    SET o.geometry = n.geometry 
  FROM nuova_tabella_dissolvenza n
  WHERE o.tipo = n.tipo.

PostgreSQL supporta le "materialized view" se vuoi tramutare la
tabella in qualcosa di piu' stabile di una view ma piu' facilmente
aggiornabile di una tabella. Occhio che usare ST_Union in una view
puo' precluderti la possibilita' di aggiornare PostGIS nel caso
in cui l'aggregato ST_Union cambi il nome di un attributo o qualcosa
di simile.

--strk;
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017

Rispondere a