Ciao a tutti,
ho creato una serie di semplici regole in postgresql per poter fare delle
interrogazioni spaziali su alcune tabelle postgis (PER SEMPIO:tab A, tab
b,
tab c).
Ho bisogno di aggiungere in una tabella(costi)un valore di "costo" se una
delle varie interrogazioni (st_intersect, st_crosses,ecc..)risponde alla
query almeno una volta con un risultato positivo (true).
Per farla più semplice vi faccio un esempio.
inserisco nella tabella A (che racchiude tutte le interrogazioni
spaziali)il risultato della query spaziale.
INSERT INTO tab_a(col_a)
SELECT ST_intersects(point_b.the_geom, polygon_c.the_geom) FROM tab b,
tab c;
tramite la regola seguente riesco ad avere nella "tabella_costi" per ogni
risultato "true" un costo associato (per sempio il costo=400)
CREATE OR REPLACE RULE insert_costi AS
ON INSERT TO tab_a
WHERE new.col_a = true DO INSTEAD INSERT INTO tab_costi
(col_costi_intersects)
VALUES (400);
Ovviamente questa regola inserisce un costo 400 alla tabella costi ogni
volta che la query interscts = true.
Avrei bisogno però di avere una sola risposta costo=400 nella
tabella_costi anche se la query intersects risponde true più volte.
Ho provato ad inserire alla regola LIMIT 1 ma non funziona.
Sapete dirmi come potrei fare?
Spero di esser stata chiara.
Immagino che non sia il modo più efficiente per fare queste elaborazioni,
ma non sono riuscita a creare una funzione plpgsql che sostituisca tutto
ciò (a tal proposito se sapete suggerirmi dei tutorial sulle funzioni
plpgsql ve ne sarei grata).
Grazie in anticipo!
Claudia
_______________________________________________
Iscriviti all'associazione GFOSS.it:
http://www.gfoss.it/drupal/iscrizione[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfossQuesta e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010