INSERT基于SELECT无法正确插入PostGreSQL

时间:2014-01-07 14:23:47

标签: sql postgresql insert

我正在使用PostGreSQL 9.3和最新的PostGIS来存储shapefile。

我有一个名为zonages_region的表,其中包含76个多边形 我添加了一个新列以存储多边形的超级数据 多边形的几何形状存储在“geom”列中。

我有这个要求:

INSERT INTO zonages_region(superficie)
SELECT ST_AREA(geom::geography)/1000000 FROM zonages_region

SELECT存储在表中,但它创建新行而不是从第一行开始。
由于我的多边形已有76行,因此INSERT开始在第77行插入。

如何从第一行开始执行INSERT,以便它与已存在的多边形行匹配?

1 个答案:

答案 0 :(得分:0)

那应该是UPDATE。像这样:

UPDATE zonages_region
SET    superficie = ST_AREA(geom::geography)/1000000

如果没有WHERE条件,表格中的每一行都会更新 Details about UPDATE in the manual.