いくつかの制約を削除して最後に復元する必要がある SQL スクリプトがありますが、制約名は自動生成され、スクリプトを実行するたびに異なります。
テーブル名から制約名を取得する方法は知っていますが、drop ステートメントでこの情報を使用することはできないようです。
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
。
これは可能ですか?