\set name value
を使います。例えば以下でtablename
にposts
という値を設定しています。
postgres=# \set tablename posts
設定できたかどうかは\set
と実行します。恐らく最後に出てくるはずです。
postgres=# \set
...
tablename = 'posts'
何か-
を挟んだもの(table-name
みたいな)変数名はうまく SQL の中で使えなかったので、避けたほうがいいかもしれないです。
では、使ってみます。
postgres=# create table :tablename (content text);
CREATE TABLE
postgres=# insert into :tablename values ('aaa');
INSERT 0 1
postgres=# select * from :tablename;
content
---------
aaa
(1 row)
「もう必要ないな」となったら\unset name
で削除できます。
postgres-# \unset tablename
postgres=# \set
...