我尝试了以下命令的不同变体,但不起作用。我只想使用位置字符串中的变量运行以下命令:
CREATE TABLESPACE data OWNER appuser
LOCATION '/var/lib/pgsql95/:variable/pg_tblspc/data';
已尝试的内容(变化):
EXECUTE CREATE TABLESPACE data OWNER appuser
LOCATION ''/var/lib/pgsql95/' || base || '/pg_tblspc/data'';';
和
PREPARE tablespace (text) AS
CREATE TABLESPACE aspire_data OWNER aspireapp
LOCATION '/var/lib/pgsql95/$1/pg_tblspc';
EXECUTE tablespace('base');
和
\set myvariable 'base'
CREATE TABLESPACE aspire_data OWNER aspireapp
LOCATION '/var/lib/pgsql95/':myvariable'/pg_tblspc';
尝试这个:
替代解决方案:
根据您的 psql 客户端版本,Peter 的解决方案(和我的)可能无法正常工作。
请参阅您的 psql 客户端版本的 PostgreSQL 文档中的 SQL 插值部分
如果没有任何效果,并且您可以从命令行传入带有单引号的变量,那也可以。