我有以下代码创建一个 Mapbox 矢量平铺(MVT)。目前它创建、存储并返回给用户。但是,我想在一个查询中创建多个,但是我卡在插入和返回部分上。这是我到目前为止所拥有的
WITH mvtgeom AS
(
SELECT ST_AsMVTGeom(
ST_GeomFromText('POLYGON ((0 0, 10 0, 10 5, 0 -5, 0 0))'),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)),
4096, 0, false)
)
INSERT INTO tile( mvt)
SELECT ST_AsMVT(mvtgeom)
FROM mvtgeom
RETURNING *;
我想在一次执行中多次执行此操作,但类似于以下内容:
WITH
mvtgeom AS
(
SELECT ST_AsMVTGeom(
ST_GeomFromText('POLYGON ((0 0, 10 0, 10 5, 0 -5, 0 0))'),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)),
4096, 0, false)
),
mvtgeom1 AS
(
SELECT ST_AsMVTGeom(
ST_GeomFromText('POLYGON ((0 0, 10 0, 10 5, 0 -5, 0 0))'),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)),
4096, 0, false)
),
INSERT INTO tile(mvt)
SELECT ST_AsMVT(mvtgeom)
FROM mvtgeom
INSERT INTO tile(mvt)
SELECT ST_AsMVT(mvtgeom1)
FROM mvtgeom1
RETURNING *;
with 部分工作正常,但稍后插入失败。我觉得我在插入语句和返回时缺少一些基本的东西。
也许您可以将它们与 UNION 结合起来,而不是 2 个单独的插入语句?喜欢