如何在PostgreSQL中执行ALTER DATABASE$current_DATABASE
我试图在一个SQL脚本中实现这一点,该脚本被输入到如何在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中执行这样的语句,因为无
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; $$;