Измените уникальный индекс, чтобы установить его отложенный в postgresq - PullRequest
0 голосов
/ 31 мая 2018

Мне нужно изменить уникальный индекс, который уже был создан, чтобы установить его отложенный.В Postgres 9,6.По сути, я делаю что-то вроде:

DROP TABLE IF EXISTS test;

CREATE TABLE test (id integer);

ALTER TABLE test ADD CONSTRAINT unique_id unique(id);

ALTER TABLE test ALTER CONSTRAINT unique_id DEFERRABLE INITIALLY DEFERRED;

Но я получаю

ERROR:  constraint "unique_id" of relation "test" is not a foreign key constraint

В документации, похоже, не упоминается, что такое действие не может быть выполнено.Чего мне не хватает?

1 Ответ

0 голосов
/ 01 июня 2018

За документация:

ALTER CONSTRAINT

Эта форма изменяет атрибуты ограничения, которое было создано ранее.В настоящее время могут быть изменены только ограничения внешнего ключа.

Вместо этого вы можете:

ALTER TABLE test DROP CONSTRAINT unique_id;
ALTER TABLE test ADD CONSTRAINT unique_id unique(id) DEFERRABLE INITIALLY DEFERRED;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...