Контекст
Я хотел бы создать PostgreSQL MATERIALIZED VIEW
с серийным номером, созданным на лету, но типом, приведенным к SERIAL
кажется, не работает (на самом деле, это не работает, даже если я отбрасываю часть, которая создает представление, и если я беру только внутреннюю инструкцию SELECT
):
CREATE MATERIALIZED VIEW schema.view_m AS (
SELECT
1::SERIAL AS id,
2::INTEGER as user_id
)
Если я заменю SERIAL
на INTEGER
, он заработает, поэтому я думаю, есть некоторые причины, по которым он не работает с SERIAL
.
Мне нужно настроить это поле id на- the-fly как истинный идентификатор (я имею в виду с последовательностью, связанной с ним, уникальной, не нулевой и т. д.):
CREATE MATERIALIZED VIEW schema.view_m AS (
SELECT
-- obviousely replace "__type__cast__goes__here__" by the right statement here:
1::__type__cast__goes__here__ AS id,
2::INTEGER as user_id
)
Что-то похожее на this , но для PostgreSQL.
Вопрос
Знаете ли вы, каковы основные технические причины этого?
Я использую PostgreSQL 10.12.