Обновление имени ограничения в PostgreSQL - PullRequest
72 голосов
/ 09 июня 2009

Можно ли изменить имя ограничения в Postgres? У меня есть PK, добавленный с:

ALTER TABLE contractor_contractor ADD CONSTRAINT commerce_contractor_pkey PRIMARY KEY(id);

И я хочу иметь другое имя, чтобы оно соответствовало остальной системе. Должен ли я удалить существующее ограничение PK и создать новое? Или есть «мягкий» способ справиться?

Спасибо!

Ответы [ 2 ]

117 голосов
/ 07 августа 2014

Чтобы переименовать существующее ограничение в PostgreSQL 9.2 или новее , вы можете использовать ALTER TABLE :

ALTER TABLE name RENAME CONSTRAINT constraint_name TO new_constraint_name;
69 голосов
/ 10 июня 2009

Для первичного ключа вы должны иметь возможность:

ALTER INDEX commerce_contractor_pkey RENAME TO whatever_new_name

Это не будет работать для других типов ограничений. Наилучший вариант - отбросить старый и создать новый. Обязательно сделайте это внутри транзакции, чтобы система не работала без нее во время перестройки. (И если вы не можете сделать это в транзакции, обязательно создайте новый сначала , прежде чем отбрасывать старый)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...