Я инициализирую функции как часть конвейера ETL; однако одна из функций зависит от работы с определенной таблицей, которая еще не была создана к моменту инициализации этой функции.
Иллюстрация:
CREATE OR REPLACE FUNCTION some_schema.my_func(parameter_1 BIGINT)
RETURNS TEXT
AS
$$
SELECT foo
FROM non_existent_schema.non_existent_schema AS my_table -- will cause error as this relation does not yet exist
WHERE my_table.bar = parameter_1
;
$$ LANGUAGE sql;
В разделе 42.6.8 документации (Ошибки перехвата) обсуждается обработка исключений, но с использованием BEGIN заявлений (я не уверен, где включить BEGIN или если это имеет отношение к моему делу).
Мой вопрос: как мне избежать этой ошибки, и если я хотел бы заставить замолчать это исключение , как правильно это сделать.
примечание: я новичок с написанием функций в Postgres.