[Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!

Massimiliano Moraca massimilianomoraca a gmail.com
Gio 22 Feb 2018 19:09:33 CET


Per la domanda 2 credo di aver risolto https://github.com/aeag/mask/wiki

Il giorno 22 febbraio 2018 18:46, Massimiliano Moraca <
massimilianomoraca a gmail.com> ha scritto:

> Si i tipi sono gli stessi
>
> Ho provato con la tua indicazione creando un vettore e riproducendo il
> caso mio. Lo script è questo:
>
> *  WITH nuova_tabella_dissolvenza AS (*
> *    SELECT ST_Union(geom) as geom, tipo FROM*
> *    update_dissolve GROUP BY tipo*
> *  )*
> *  UPDATE update_dissolve o*
> *    SET o.geom = n.geom*
> *  FROM nuova_tabella_dissolvenza n*
> *  WHERE o.tipo = n.tipo;*
>
> Mi compare questo errore però:
>
> *ERROR:  ERRORE:  la colonna "o" della relazione "update_dissolve" non
> esiste*
> *LINE 6:     SET o.geom = n.geom*
> *                ^*
>
>
> *SQL state: 42703*
> *Character: 157*
>
>
>
> Il giorno 22 febbraio 2018 17:56, Sandro Santilli <strk a kbt.io> ha
> scritto:
>
>> 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;
>>
>
>


Maggiori informazioni sulla lista Gfoss