Ao criar uma tabela no PostgreSQL, os nomes de restrição padrão serão atribuídos se não forem fornecidos:
CREATE TABLE example (
a integer,
b integer,
UNIQUE (a, b)
);
Mas usar ALTER TABLE
para adicionar uma restrição parece que um nome é obrigatório:
ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b);
Isso causou algumas inconsistências de nomenclatura em projetos em que trabalhei e suscita as seguintes perguntas:
Existe uma maneira simples de adicionar uma restrição a uma tabela existente com o nome que ela teria recebido se adicionada durante a criação da tabela?
Caso contrário, os nomes padrão devem ser evitados para evitar inconsistências?