PG修改参数

0    656    1

Tags:

👉 本文共约5090个字,系统预计阅读时间或需20分钟。

SHOW

SHOW — 显示一个运行时参数的值

大纲

描述

SHOW将显示运行时参数的当前设置。 这些变量可以使用SET语句、编辑 postgresql.conf配置参数、通过 PGOPTIONS环境变量(使用 libpq或者基于libpq的应用时) 或者启动postgres服务器时通过命令行 标志设置。详见第 19 章

参数

  • name

    一个运行时参数的名称。可用的参数记录在 第 19 章SET参考页。此外,有一些可以显示但不能设置的参数:SERVER_VERSION显示服务器的版本号。SERVER_ENCODING显示服务器端的字符集编码。当前,这个参数可以被显示 但不能被设置,因为该设置是在数据库创建时决定的。LC_COLLATE显示数据库的排序规则(文本序)的区域设置。当前, 这个参数可以被显示但不能被设置,因为该设置是在 数据库创建时决定的。LC_CTYPE显示数据库的字符分类的区域设置。当前, 这个参数可以被显示但不能被设置,因为该设置 是在数据库创建时决定的。IS_SUPERUSER如果当前角色具有超级用户特权则为真。

  • ALL

    显示所有配置参数的值,并带有描述。

注解

函数current_setting产生等效的输出,见 第 9.27 节。还有, pg_settings 系统事务产生同样的信息。

示例

显示参数DateStyle的当前设置:

显示参数geqo的当前设置:

显示所有设置:

兼容性

SHOW命令是一种 PostgreSQL扩展。

SET

SET — 更改一个运行时参数,set命令只影响当前会话使用的值。

大纲

描述

SET命令更改运行时配置参数。很多 第 19 章中列出的参数可以用 SET即时更改(但是有些需要超级用户 特权才能更改,并且还有一些在服务器或者会话启动之后不能被更改)。 SET只影响当前会话所使用的值。

如果在一个事务内发出SET (或者等效的SET SESSION)而该事务后来 中止,在该事务被回滚时SET命令的效果会 消失。一旦所在的事务被提交,这些效果将会持续到会话结束(除非被另 一个SET所覆盖)。

SET LOCAL的效果只持续到当前事务结束, 不管事务是否被提交。一种特殊情况是在一个事务内 SET后面跟着 SET LOCALSET LOCAL值将会在该事务结束前一直可见, 但是之后(如果该事务被提交)SET值将会生效。

SETSET LOCAL 的效果也会因为回滚到早于它们的保存点而消失。

如果在一个函数内使用SET LOCAL并且该函数 还有对同一变量的SET选项(见 CREATE FUNCTION),在函数退出时 SET LOCAL命令的效果会消失。也就是说,该 函数被调用时的值会被恢复。这允许用 SET LOCAL在函数内动态地或者重复地更改 一个参数,同时仍然能便利地使用SET选项来保存以及恢复调用 者的值。不过,一个常规的SET命令会覆盖它所在的任何函 数的SET选项,除非回滚,它的效果将一直保持。

注意

在PostgreSQL 版本 8.0 到 8.2 中, 一个SET LOCAL的效果会因为释放较早的 保存点或者成功地从一个PL/pgSQL异常块 中退出而被取消。这种行为已经被更改,因为它被认为不直观。

参数

  • SESSION

    指定该命令对当前会话有效(这是默认值)。

  • LOCAL

    指定该命令只对当前事务有效。在COMMIT或者 ROLLBACK之后,会话级别的设置会再次生效。 在事务块外部发出这个参数会发出一个警告并且不会有效果。

  • configuration_parameter

    一个可设置运行时参数的名称。可用的参数被记录在 第 19 章和下文中。

  • value

    参数的新值。根据特定的参数,值可以被指定为字符串常量、标识符、 数字或者以上构成的逗号分隔列表。写DEFAULT 可以指定把该参数重置成它的默认值(也就是说在当前会话中还没有 执行SET命令时它具有的值)。

除了在第 19 章中记录的配置参数, 还有一些参数只能用SET命令设置 或者具有特殊的语法:

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复