如何在创建材料视图时添加具有不同值的列?

问题描述 投票:0回答:1

我正在从几个不同的表中创建一个物化视图,但是我缺少类值,因为它不在原始表中。创建物化视图时如何添加列并设置值?我想获得一个名为class的新列,并为每个SELECT填充它的名称,以便以后可以过滤MV。我知道您可以将列直接添加到原始表中,但是由于该表总是会被删除并再次由另一个人填充,因此我想直接在MV中进行此操作。

CREATE MATERIALIZED VIEW vt_views.poi
TABLESPACE pg_default
AS
SELECT tim_bergname.name,
       tim_bergname.info1 AS hoehe,
       NULL AS art,
       NULL AS name_alternative,
       tim_bergname.info2 AS region,
       NULL AS text_hoehe,
       NULL AS name_lang,
       tim_bergname.geoloc,
       tim_bergname.symbolnummer
FROM tim_bergname

UNION ALL

SELECT tim_haus_huette.name,
       NULL,
       tim_haus_huette.info1 AS art,
       NULL,
       tim_haus_huette.info2 AS region,
       NULL,
       NULL,
       tim_haus_huette.geoloc,
       tim_haus_huette.symbolnummer
FROM tim_haus_huette

UNION ALL

... severall other SELECTS

UNION ALL

SELECT tim_wohnmobilstellplatz.name,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL,
       tim_wohnmobilstellplatz.geoloc,
       tim_wohnmobilstellplatz.symbolnummer
FROM tim_wohnmobilstellplatz
WITH DATA;

和索引:

CREATE INDEX poi_geoloc_idx
    ON vt_views.poi USING gist (geoloc)
TABLESPACE pg_default;
postgresql select materialized-views
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.