我有一个Postgres数据库。在该数据库中有一个带有多边形的表。 名为:dg_mm_polygons。
我创建了一个Select and WHERE Query:
SELECT * FROM dg_geodata.dg_mm_polygons WHERE OFFSHORE = 2;
如果我执行此操作,它将按我的要求工作。 我想让表dg_geodata.dg_mm_polygons保持原样。
我的问题: 我想创建/获取一个新表dg_geodata.dg_mm_polygons_2。如果需要将数据保存在dg_geodata.dg_mm_polygons中,则需要将其保存在表dg_geodata.dg_mm_polygons_2中。
是否可以这样做?
答案 0 :(得分:1)
您可以使用CREATE TABLE AS语句(https://www.postgresql.org/docs/current/static/sql-createtableas.html)
在您的情况下,以下语句将创建一个名为“ dg_mm_polygons2”的新表,该表将填充您现有的“ dg_mm_polygons”表中的数据,其中OFFHSORE = 2。
CREATE TABLE dg_geodata.dg_mm_polygons2 AS SELECT * FROM dg_geodata.dg_mm_polygons WHERE OFFSHORE = 2;
答案 1 :(得分:1)
听起来您想创建一个视图dg_geodata.dg_mm_polygons_2,该视图仅包含dg_geodata.dg_mm_polygons中的一部分数据
create view dg_geodata.dg_mm_polygons_2 as
select *
from dg_geodata.dg_mm_polygons
WHERE OFFSHORE = 2;
这将确保dg_geodata.dg_mm_polygons_2中仅显示offshore = 2的值。不过请注意,您也可以像从原始表中一样从视图中插入更新/删除。