我正在使用创建矢量图块ST_AsMVT
,除了返回对象之外,我还想在创建它们后立即存储它们。
下面的代码在创建 bytea 响应时效果很好。
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)
)
SELECT ST_AsMVT(mvtgeom.*)
FROM mvtgeom
但是当我更改最后一部分以包含一个INSERT
声明时:
INSERT INTO test SELECT ST_AsMVT(mvtgeom.*)
FROM mvtgeom
我得到回应:
此结果对象不返回行
这当然是真的,但是如何插入不是一行的数据呢?
该表test
只有一个 ID 和一个 BYTEA 列。
拼出目标列:
否则,
INSERT
插入到您提到的(前导)ID 列中。增加的
RETURNING
条款包括:或者另外为 ID 列提供一个值,并且(可选)返回整行: