当前数据库上的ALTER DATABASE,没有明确的数据库名称?

问题描述 投票:11回答:2

我希望能够编写将数据库更改为当前我已登录的sql查询。

示例:

$ psql my_db
psql(9.1.1)
my_db=> ALTER DATABASE my_db SET some_variable = '0';
                       ^^^^^

是否有办法避免在此查询中指定数据库名称?

sql postgresql
2个回答
19
投票

如果您使用的是9.1,则可以使用:

DO $$
BEGIN
   execute 'alter database '||current_database()||' set some_var = ''0''';
END
$$;

9
投票

如果在psql中执行脚本,则可以使用psql的替换机制:

alter database :DBNAME SET ...

文档在这里:http://www.postgresql.org/docs/current/interactive/app-psql.html#APP-PSQL-VARIABLES

© www.soinside.com 2019 - 2024. All rights reserved.