PostgreSQL - отключение ограничений
У меня есть таблица с примерно 5 миллионами строк, в которой есть ограничение fk, ссылающееся на первичный ключ другой таблицы (также около 5 миллионов строк).
Мне нужно удалить около 75000 строк из обеих таблиц. Я знаю, что если я попытаюсь сделать это с включенным ограничением fk, это займет недопустимое количество времени.
Исходя из опыта Oracle, моей первой мыслью было отключить ограничение, выполнить удаление и затем снова включить ограничение. PostGres позволяет мне отключать триггеры ограничений, если я являюсь суперпользователем (я не являюсь пользователем, но я вхожу в систему как пользователь, который владеет / создает объекты), но это не совсем то, чего я хочу.
Другой вариант - удалить ограничение и затем восстановить его. Я обеспокоен тем, что восстановление ограничения займет много времени, учитывая размер моих таблиц.
Какие-нибудь мысли?
изменить: после поощрения Билли я попытался удалить, не меняя никаких ограничений, и это заняло более 10 минут. Однако я обнаружил, что таблица, из которой я пытаюсь удалить, имеет собственный ссылочный внешний ключ ... дублированный (& не проиндексированный).
Последнее обновление - я удалил собственный ссылочный внешний ключ, сделал свое удаление и добавил его обратно. Билли прав со всех сторон, но, к сожалению, я не могу принять его комментарий как ответ!