Postgresql 新表的Postgres Where语句

Postgresql 新表的Postgres Where语句,postgresql,Postgresql,我有一个Postgres数据库。在这个数据库中,有一个带有多边形的表。 命名:dg_mm_多边形 我已创建了一个选择和位置查询: SELECT * FROM dg_geodata.dg_mm_polygons WHERE OFFSHORE = 2; 如果我执行此操作,它将按我所希望的方式工作。 我想让表dg_geodata.dg_mm_多边形保持原样 我的问题: 我想创建/获取一个新表dg_geodata.dg_mm_polygons_2。如果数据保存在dg_geodata.dg_mm_pol

我有一个Postgres数据库。在这个数据库中,有一个带有多边形的表。 命名:dg_mm_多边形

我已创建了一个选择和位置查询:

SELECT * FROM dg_geodata.dg_mm_polygons WHERE OFFSHORE = 2;
如果我执行此操作,它将按我所希望的方式工作。 我想让表dg_geodata.dg_mm_多边形保持原样

我的问题: 我想创建/获取一个新表dg_geodata.dg_mm_polygons_2。如果数据保存在dg_geodata.dg_mm_polygons in中,则需要提供/获取表dg_geodata.dg_mm_polygons_2


有可能这样做吗

您可以使用CREATETABLE AS语句()

在您的情况下,下面的语句将创建一个名为“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;

听起来您想创建一个视图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的值。但是要小心,您也可以像从原始表一样从视图中插入update/delete