PostgreSQL-Drop-Einschränkung mit unbekanntem Namen

Ich habe ein SQL-Skript, das mehrere Einschränkungen löschen und am Ende wiederherstellen muss, aber die Einschränkungsnamen werden automatisch generiert und unterscheiden sich bei jeder Ausführung des Skripts.

Ich weiß, wie man den Constraint-Namen aus den Tabellennamen erhält, aber es scheint nicht möglich zu sein, diese Informationen in der drop-Anweisung zu verwenden.

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) ist ein Syntaxfehler.

Im Idealfall möchte ich den Constraint-Namen abrufen und in einer Variablen speichern, aber Postgres scheint das nicht zu unterstützen, und ich kann es nicht mit psql zum Laufen bringen\set.

Ist das überhaupt möglich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage