Обновление имени ограничения в PostgreSQL
Можно ли изменить имя ограничения в Postgres?
У меня есть PK с:
ALTER TABLE contractor_contractor ADD CONSTRAINT commerce_contractor_pkey PRIMARY KEY(id);
И я хочу иметь другое имя для него, чтобы оно соответствовало остальной системе.
Должен ли я удалить существующее ограничение PK и создать новый? Или есть "мягкий" способ
управлять им?
Спасибо!
Ответы
Ответ 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;