Como criar uma seqüência se não existir
Eu tentei usar o código deVerifique se existe uma seqüência no Postgres (plpgsql).
Para criar uma sequência, se não existir. Executar esse código duas vezes causa uma exceção:
sequência ... já existe.
Como criar uma sequência apenas se ela não existir?
Se a seqüência não existir, nenhuma mensagem deverá ser gravada e nenhum erro deverá ocorrer, portanto, não será possível usar o procedimento armazenado na outra resposta a essa pergunta, pois ela grava a mensagem no arquivo de log sempre que houver uma seqüência.
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;