SET — 更改运行时参数
SET [ SESSION | LOCAL ]configuration_parameter
{ TO | = } {value
| 'value
' | DEFAULT } SET [ SESSION | LOCAL ] TIME ZONE {value
| 'value
' | LOCAL | DEFAULT }
可设置运行时参数的名称。文档中提供的可用参数请参见第 19 章和下面。
值
参数的新值。可以将值指定为字符串常量、标识符、数字或以逗号分隔的列表,具体方式应适合特定参数。可以写入DEFAULT
以指定将参数重置为其默认值(即,如果在当前会话中没有执行SET
,它将具有的任何值)。
除了第 19 章中记录的配置参数外,还有一些参数只能使用SET
命令进行调整或具有特殊语法
模式
SET SCHEMA '
是value
'SET search_path TO
的别名。只可以使用此语法指定一个模式。value
名称
SET NAMES
是value
SET client_encoding TO
的别名。value
种子
为随机数生成器设置内部种子(函数random
)。允许的值是 -1 到 1(包含 -1 和 1)之间的浮点数。
还可以通过调用函数setseed
设置种子
SELECT setseed(value
);
时区
SET TIME ZONE '
是value
'SET timezone TO '
的别名。语法value
'SET TIME ZONE
允许使用特殊语法指定时区。以下是一些有效值的示例
'America/Los_Angeles'
加州伯克利时区。
'Europe/Rome'
意大利时区。
-7
比 UTC 向西 7 小时的时区(相当于 PDT)。UTC 以东的值为正。
INTERVAL '-08:00' HOUR TO MINUTE
比 UTC 向西 8 小时的时区(相当于 PST)。
LOCAL
DEFAULT
将时区设置为您本地的时区(即timezone
的服务器默认值)。
作为数字或间隔给出的时区设置在内部转换为 POSIX 时区语法。例如,在SET TIME ZONE -7
后,SHOW TIME ZONE
将报告<-07>+07
。
SET
不支持时区缩写;有关时区的更多信息,请参见第 8.5.3 节。
函数 set_config
提供同等的功能;请参阅 第 9.28.1 节。此外,还可以更新 pg_settings
系统视图来执行相当于 SET
的操作。
设置架构搜索路径
SET search_path TO my_schema, public;
将日期样式设置为传统的 POSTGRES 样式,采用 “day before month” 输入惯例
SET datestyle TO postgres, dmy;
设置加利福尼亚州伯克利的时区
SET TIME ZONE 'America/Los_Angeles';
设置意大利的时区
SET TIME ZONE 'Europe/Rome';
SET TIME ZONE
扩展了 SQL 标准中定义的语法。该标准只允许数值时区偏移,而 PostgreSQL 允许更灵活的时区规范。所有其他 SET
功能均为 PostgreSQL 扩展。