新表的Postgres Where语句

时间:2018-07-19 15:41:45

标签: postgresql

我有一个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中。

是否可以这样做?

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的值。不过请注意,您也可以像从原始表中一样从视图中插入更新/删除。