我正在从几个不同的表中创建一个物化视图,但是我缺少类值,因为它不在原始表中。创建物化视图时如何添加列并设置值?我想获得一个名为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;