Ограничение удаления PostgreSQL с неизвестным именем

У меня есть сценарий SQL, который должен удалить несколько ограничений и восстановить их в конце, но имена ограничений генерируются автоматически и будут отличаться при каждом запуске сценария.

Я знаю, как получить имя ограничения из имен таблиц, но, по-видимому, невозможно использовать эту информацию в операторе удаления.

select conname from pg_constraint where
   conrelid = (select oid from pg_class where relname='table name')
   and confrelid = (select oid from pg_class where relname='reference table');

alter table something drop constraint (some subquery) это синтаксическая ошибка

В идеале я хотел бы получить имя ограничения и сохранить его в переменной, но, похоже, Postgres не поддерживает это, и я не могу заставить его работать с psql.\set.

Это вообще возможно?

Ответы на вопрос(1)

Ваш ответ на вопрос