Ограничение удаления 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
Это вообще возможно?