Postgres 変数は \set コマンドで作成されます。たとえば ...
\set myvariable value
...そして、たとえば...のように置き換えることができます
SELECT * FROM :myvariable.table1;
... また ...
SELECT * FROM table1 WHERE :myvariable IS NULL;
編集: psql 9.1 以降、変数は次のように引用符で囲むことができます。
\set myvariable value
SELECT * FROM table1 WHERE column1 = :'myvariable';
古いバージョンの psql クライアントでは:
... 次のような条件付き文字列クエリの値として変数を使用する場合 ...
SELECT * FROM table1 WHERE column1 = ':myvariable';
...次に、上記が機能しないため、変数自体に引用符を含める必要があります。代わりに、変数をそのように定義してください...
\set myvariable 'value'
ただし、私のように、既存の変数から文字列を作成したい状況に遭遇した場合、トリックはこれであることがわかりました...
\set quoted_myvariable '\'' :myvariable '\''
これで、同じ文字列の引用符付き変数と引用符なし変数の両方ができました! そして、あなたはこのようなことができます....
INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;