Podczas tworzenia tabeli w PostgreSQL, domyślne nazwy ograniczeń zostaną przypisane, jeśli nie zostaną podane:
CREATE TABLE example (
a integer,
b integer,
UNIQUE (a, b)
);
Ale użycie ALTER TABLE
do dodania ograniczenia wydaje się, że nazwa jest obowiązkowa:
ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b);
Spowodowało to pewne niespójności w nazewnictwie projektów, nad którymi pracowałem, i powoduje pojawienie się następujących pytań:
Czy istnieje prosty sposób na dodanie ograniczenia do istniejącej tabeli o nazwie, którą otrzymałoby, gdyby zostało dodane podczas tworzenia tabeli?
Jeśli nie, czy należy całkowicie unikać nazw domyślnych, aby zapobiec niespójnościom?