返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

SET

发布于 2019-09-30 03:11:47 字数 3015 浏览 1274 评论 0 收藏 0

名称

SET--修改运行时参数

语法

SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }

描述

SET 命令修改运行时配置参数。许多在章17里面列出的运行时参数可以用 SET 在运行时设置。但是有些要求使用超级用户权限来修改,而其它有些则在服务器或者会话开始之后不能修改。请注意 SET 只影响当前会话使用的数值。

如果 SETSET SESSION 是在一个稍后退出的事务里发出的,那么 SET 命令的效果将在事务回滚之后消失。一旦包围它的事务提交,那么其效果将持续到事务的结束,除非被另外一个 SET 覆盖。

不管是否提交,SET LOCAL 的效果只持续到当前事务结束。一个特例是在一个事务里面的 SET 后面跟着一个 SET LOCAL :在事务结束之前只能看到 SET LOCAL 的数值,但是之后(如果事务提交),则是 SET 的值生效。

参数

SESSION

声明这个命令只对当前会话起作用。如果 SESSIONLOCAL 都没出现,那么这个是缺省。

LOCAL

声明该命令只在当前事务中有效。在 COMMITROLLBACK 之后,会话级别的设置将再次生效。请注意如果在 BEGIN 块之外运行,那么 SET LOCAL 将表现出没有作用,因为事务将立即结束。

configuration_parameter

可设置的运行时参数的名字。可用的参数在章17和下面有文档。

value

参数的新值。值可以声明为字符串常量、标识符、数字,或者逗号分隔的上面这些东西的列表。DEFAULT 可以用于把这些参数设置为它们的缺省值。

除了在章17里面有文档记载的配置参数之外,还有几个只能用 SET 命令设置,或者是有特殊的语法的参数。

NAMES

SET NAMES valueSET client_encoding TO value 的别名。

SEED

为随机数生成器(函数 random)设置内部的种子。允许的值是介于 0 和 1 之间的浮点数,然后它会被乘以 231-1

也可以通过调用 setseed 函数来设置种子:

SELECT setseed(value);
TIME ZONE

SET TIME ZONE valueSET timezone TO value 的一个别名。语法 SET TIME ZONE 允许为时区设置特殊的语法。下面是有效值的例子:

'PST8PDT'

加州伯克利的时区

'Europe/Rome'

意大利时区

-7

UTC 以西 7 小时的时区(等效于 PDT)

INTERVAL '-08:00' HOUR TO MINUTE

UTC 以西 8 小时的时区(等效于 PST)

LOCAL
DEFAULT

将时区设置为你的本地时区(服务器操作系统缺省的那个)

参阅 节8.5.3 获取有关时区的更多细节。

注意

函数 set_config 提供了等效的功能。参阅节9.20。

例子

设置模式搜索路径:

SET search_path TO my_schema, public;

把日期时间风格设置为传统的 POSTGRES 风格(日在月前):

SET datestyle TO postgres, dmy;

把时区设置为加州伯克利:

SET TIME ZONE 'PST8PDT';

为意大利设置时区:

SET TIME ZONE 'Europe/Rome';

兼容性

SET TIME ZONE 扩展了在 SQL 标准里定义的语法。标准只允许有一个数字时区偏移,而 PostgreSQL 还允许完整更灵活的时区声明。所有其它的 SET 特性都是 PostgreSQL 扩展。

又见

RESET, SHOW

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文