Answers:
通常,您可以制作一个新的地理空间表,如下所示:
SELECT *
INTO europe.borders
FROM wo_borders
WHERE admin_lvl2 = 'eu';
-- Define a primary key
ALTER TABLE europe.borders ADD PRIMARY KEY (gid);
-- Spatially enable it
SELECT Populate_Geometry_Columns('europe.borders'::regclass);
但是,通过这样做,您正在隔离数据库(对其进行规范化)。这意味着它具有冗余性,因此,如果一个表中的任何信息都有更新,则很难在另一个表中进行更新。此外,您将无法对整个世界执行查询,而只能对子区域执行查询。您可以考虑使用VIEWs来制作主表分区的虚拟表:
-- Make an index on your column used to query the view
CREATE INDEX wo_borders_admin_lvl2_idx ON wo_borders USING btree (admin_lvl2);
-- Now the view
CREATE OR REPLACE VIEW europe.borders_view AS
SELECT *
FROM wo_borders
WHERE admin_lvl2 = 'eu';
-- Spatially enable it
SELECT Populate_Geometry_Columns('europe.borders_view'::regclass);