current_setting() 是一个系统函数,用于返回当前 配置参数 的值以及其他一些值。
current_setting() 函数是在 PostgreSQL 7.3 中添加的。
用法
current_setting ( setting_name text [, missing_ok boolean ] ) → text
与 SHOW 命令类似,current_setting() 返回当前 配置参数(以及其他一些参数)的值。但与 SHOW 不同,current_setting() 是一个普通函数,可以与其他 SQL 元素结合使用。此外,它还可以显示自定义变量,并且可以选择在指定的配置参数不存在时执行而不返回错误。
与 SHOW 一样,current_setting() 也可以通过伪参数 is_superuser 来显示当前用户是否为超级用户。
系统目录视图 pg_settings 也可以用于检索有关当前配置参数值的相关信息。
变更历史
- PostgreSQL 9.6
- 增加了
missing_ok选项 (提交 10fb48d6)
- 增加了
- PostgreSQL 7.3
- 添加 (提交 7ef56347)
示例
检索普通的 配置参数
postgres=# SELECT current_setting('port');
current_setting
-----------------
5432
(1 row)
尝试检索不存在的配置参数
postgres=# SELECT current_setting('foo');
ERROR: unrecognized configuration parameter "foo"
安全地尝试检索可能不存在的配置参数(PostgreSQL 9.6 及更高版本)
postgres=# SELECT current_setting('foo', true);
current_setting
-----------------
(1 row)
显示当前用户是否为超级用户
postgres=# SELECT current_setting('is_superuser');
current_setting
-----------------
on
(1 row)
参考资料
- PostgreSQL 文档: 配置设置函数
