Lors de la création d'une table dans PostgreSQL, des noms de contraintes par défaut seront attribués s'ils ne sont pas fournis :
CREATE TABLE example (
a integer,
b integer,
UNIQUE (a, b)
);
Mais l'utilisation de ALTER TABLE
pour ajouter une contrainte, il semble qu'un nom soit obligatoire :
ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b);
Cela a provoqué quelques incohérences dans la dénomination des projets sur lesquels j'ai travaillé, et suscite les questions suivantes :
-
Existe-t-il un moyen simple d'ajouter une contrainte à une table existante avec le nom qu'elle aurait reçu si elle avait été ajoutée lors de la création de la table ?
-
Si ce n'est pas le cas, les noms par défaut devraient-ils être évités afin d'éviter les incohérences ?