Подтвердить что ты не робот

Обновление имени ограничения в PostgreSQL

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

ALTER INDEX commerce_contractor_pkey RENAME TO whatever_new_name

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

Ответ 2

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

ALTER TABLE name RENAME CONSTRAINT constraint_name TO new_constraint_name;