Variabel Postgres dibuat melalui perintah \set, misalnya ...
\set myvariable value
... dan kemudian dapat diganti, misalnya, sebagai ...
SELECT * FROM :myvariable.table1;
... atau ...
SELECT * FROM table1 WHERE :myvariable IS NULL;
edit:Pada psql 9.1, variabel dapat diperluas dalam tanda kutip seperti pada:
\set myvariable value
SELECT * FROM table1 WHERE column1 = :'myvariable';
Dalam versi klien psql yang lebih lama:
... Jika Anda ingin menggunakan variabel sebagai nilai dalam kueri string bersyarat, seperti ...
SELECT * FROM table1 WHERE column1 = ':myvariable';
... maka Anda perlu memasukkan tanda kutip dalam variabel itu sendiri karena di atas tidak akan berfungsi. Alih-alih mendefinisikan variabel Anda seperti itu ...
\set myvariable 'value'
Namun, jika, seperti saya, Anda mengalami situasi di mana Anda ingin membuat string dari variabel yang ada, saya menemukan triknya adalah ini ...
\set quoted_myvariable '\'' :myvariable '\''
Sekarang Anda memiliki variabel yang dikutip dan tidak dikutip dari string yang sama! Dan Anda dapat melakukan sesuatu seperti ini ....
INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;