如何在PostgreSQL中执行ALTER DATABASE$current_DATABASE

如何在PostgreSQL中执行ALTER DATABASE$current_DATABASE,postgresql,Postgresql,我试图在一个SQL脚本中实现这一点,该脚本被输入到psql: ALTER DATABASE dbname SET SEARCH_PATH TO myschema,public 但是我需要动态地将dbname设置为当前数据库,而不是硬编码 这在PostgreSQL中可能吗?我试过这个,但不起作用: ALTER DATABASE (select current_database()) SET SEARCH_PATH TO myschema,public; 不能在普通SQL中执行这样的语句,因为无

我试图在一个SQL脚本中实现这一点,该脚本被输入到
psql

ALTER DATABASE dbname SET SEARCH_PATH TO myschema,public
但是我需要动态地将
dbname
设置为当前数据库,而不是硬编码

这在PostgreSQL中可能吗?我试过这个,但不起作用:

ALTER DATABASE (select current_database()) SET SEARCH_PATH TO myschema,public;

不能在普通SQL中执行这样的语句,因为无法参数化标识符。
你可以写一封信

使用PostgreSQL9.0或更高版本,您还可以使用:


您能用Bash/Perl/Ruby/您最喜欢的脚本语言围绕这个SQL脚本创建一个包装器吗?
DO $$
BEGIN
EXECUTE '
ALTER DATABASE ' || current_database() || ' SET SEARCH_PATH TO myschema,public';
END; $$;