Как создать последовательность, если она не существует
Я пытался использовать код изПроверьте, существует ли последовательность в Postgres (plpgsql).
Создать последовательность, если она не существует. Запуск этого кода два раза вызывает исключение:
последовательность ... уже существует.
Как создать последовательность, только если она не существует?
Если последовательность не существует, сообщение не должно быть записано и не должно возникать ошибки, поэтому я не могу использовать хранимую процедуру в другом ответе на этот вопрос, поскольку она записывает сообщение в файл журнала каждый раз, когда последовательность существует.
do $
begin
SET search_path = '';
IF not EXISTS (SELECT * FROM pg_class
WHERE relkind = 'S'
AND oid::regclass::text = 'firma1.' || quote_ident('myseq'))
THEN
SET search_path = firma1,public;
create sequence myseq;
END IF;
SET search_path = firma1,public;
end$;
select nextval('myseq')::int as nr;