[Gfoss] Editing in PostGIS

Ciao a tutti,

vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane poco chiara.
Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto ma se divido un poligono già esistente in più parti con la funzione “Split feature” il valore di gid viene assegnato ad entrambe i nuovi poligoni. Ovviamente a questo punto ho la chiave primaria duplicata e quindi non posso più salvare fino a quando non assegno manualmente un nuovo valore al campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice cornuto e mazziato!
Mi sto perdendo io qualcosa di estremamente semplice ? C’è un modo semplice per ovviare al problema ?

grazie in anticipo
Luca

On Thu, Apr 19, 2012 at 11:08:58AM +0200, Luca Lanteri wrote:

Ciao a tutti,

vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane
poco chiara.
Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial
che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto
ma se divido un poligono già esistente in più parti con la funzione "Split
feature" il valore di gid viene assegnato ad entrambe i nuovi poligoni.
Ovviamente a questo punto ho la chiave primaria duplicata e quindi non
posso più salvare fino a quando non assegno manualmente un nuovo valore al
campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo
inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice
cornuto e mazziato!
Mi sto perdendo io qualcosa di estremamente semplice ? C'è un modo semplice
per ovviare al problema ?

Mi sembra un caso d'uso molto comune.
Quale pensi possa essere un comportamento migliore ?

Immagino che assegnare un nuovo id potrebbe farti perdere di vista i
componenti risultanti dallo split.

--strk;

  ,------o-.
  | __/ | Delivering high quality PostGIS 2.0 !
  | / 2.0 | http://strk.keybit.net - http://vizzuality.com
  `-o------'

nel mio caso il gid serve solo per avere una chiave primaria per Qgis, perchè il collegamento con gli altri oggetti del database avviene mediante un’altro codice.
La mia idea è che una delle parti dell’oggetto splittato potrebbe tenere il vecchio gid, mentre tutte le altre dovrebbero averne asseganto uno nuovo in automatico.
Cose devo fare ? un trigger ? Va gestito da Qgis ?

Il giorno 19 aprile 2012 11:38, Sandro Santilli <strk@keybit.net> ha scritto:

On Thu, Apr 19, 2012 at 11:08:58AM +0200, Luca Lanteri wrote:

Ciao a tutti,

vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane
poco chiara.
Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial
che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto
ma se divido un poligono già esistente in più parti con la funzione “Split
feature” il valore di gid viene assegnato ad entrambe i nuovi poligoni.
Ovviamente a questo punto ho la chiave primaria duplicata e quindi non
posso più salvare fino a quando non assegno manualmente un nuovo valore al
campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo
inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice
cornuto e mazziato!
Mi sto perdendo io qualcosa di estremamente semplice ? C’è un modo semplice
per ovviare al problema ?

Mi sembra un caso d’uso molto comune.
Quale pensi possa essere un comportamento migliore ?

Immagino che assegnare un nuovo id potrebbe farti perdere di vista i
componenti risultanti dallo split.

–strk;

,------o-.
| __/ | Delivering high quality PostGIS 2.0 !
| / 2.0 | http://strk.keybit.net - http://vizzuality.com
`-o------’