(Controllo pre-volo: gli attributi sono identici in tutte le tabelle originali? Il tipo di geometria è esattamente lo stesso in tutte le tabelle?)
Puoi farlo
- creare prima la tabella (vuota), quindi utilizzare INSERT INTO ... SELECT ... FROM per ottenere tutti i dati da ciascuna delle tabelle originali in quella unita.
- Crea la nuova tabella da un'unica grande istruzione UNION.
Per 1 potrebbe andare:
CREATE TABLE merged (id serial primary key, attrib1 integer, attrib2 varchar(15),....);
SELECT AddGeometryColumn('merged','geom',<SRID>,'<FEATURE_TYPE>,'XY');
INSERT INTO merged (attrib1, attrib2, ...., geom) SELECT attribA, attribB,...,geom FROM table_1;
INSERT INTO merged (attrib1, attrib2, ...., geom) SELECT attribA, attribB,...,geom FROM table_2;
e così via...
Per l'opzione 2:
CREATE TABLE merged AS(
SELECT attribA, attribB,...,geom FROM table_1
UNION
SELECT attribA, attribB,...,geom FROM table_2
UNION
....
);
SELECT Populate_Geometry_Columns('merged'::regclass);
HTH, Micha