Synopsis
SET
variable
{ TO | = } {
value
| '
value
' | DEFAULT }
SET TIME ZONE { '
timezone
' | LOCAL | DEFAULT }
输入
-
variable
-
可设置的全局变量.
-
value
-
参数的新值.
DEFAULT
可以用于声明把参数恢复为缺省值.允许使用字串数组,
但是更复杂的结构需要用单引号或者双引号引起来.
描述
SET
命令改变运行时配置参数.
可以改变的参数是:
-
CLIENT_ENCODING
NAMES
-
设置多字节客户端编码。声明的编码方式必须为后端支持。
这个特性只有在制作
PostgreSQL
的配置阶段声明了多字节(--enable-multibyte)支持后才生效。
-
DATESTYLE
-
设置日期/时间表示风格。有两个独立的配置需要设置:
缺省的日期/时间输出和语意含糊的输入的解释.
下面是日期/时间输出风格:
-
ISO
-
使用 ISO 8601-风格的日期和时间(
YYYY-MM-DD
HH:MM:SS
)这是缺省设置.
-
SQL
-
使用 Oracle/Ingres-风格的日期和时间.请注意这个风格
和 SQL 没有任何关系(SQL要求使用ISO 8601风格),这个
命名选项是历史原因.
-
PostgreSQL
-
使用传统
PostgreSQL
格式
-
German
-
使用
dd.mm.yyyy
作为数字日期表达式.
下面的两个选项决定
"SQL"
和
"PostgreSQL"
两个选项的输出格式的子风格,以及优先的含糊日期输入的解释.
-
European
-
使用
dd/mm/yyyy
作为数字化的日期表现形式.
-
NonEuropean
US
-
使用
mm/dd/yyyy
作为数字日期表现形式.
SET DATESTYLE
的值可以是来自第一列中的一个(输出风格),
或者是来自第二列中的一个(子风格),
或者来自上面两个列表,并且用逗号分隔两个参数.
日期格式初始化可以用下面方法初始化:
设置
PGDATESTYLE
环境变量.
如果一个基于 libpq 的客户端的环境里设置了 PGDATESTYLE,
libpq 将在联接启动时自动把DATESTYLE 设置成为 PGDATESTYLE 的值。
|
用
-o -e
参数运行 postmaster可以把日期设置成
European
.
|
DateStyle
选项只是为了移植应用用的.
要格式化你的日期/时间值来做选择,请用
to_char
家族的函数.
-
SEED
-
为随机数生成器设置内部种子.
-
value
-
被
random
范围函数使用的种子的值.
典型的值是介于0 和 1之间的浮点数,
这个数随后乘以 2
31
-1.如果使用了超出范围的数值,
生成的积自动溢出.
种子还可以通过调用
setseed
SQL 函数设置:
SELECT setseed(
value
);
-
SERVER_ENCODING
-
设置多字节服务器端编码方式.
这个特性只有在制作
PostgreSQL
的配置阶段声明了多字节支持后才生效。
-
TIME ZONE
TIMEZONE
-
为你的会话设置缺省时区.参数可以是一个 SQL 时间间隔常量,
一个整数或者双精度常量,或者一个代表宿主操作系统支持地
时区字串.
用于时区的可能值取决于你的操作系统.例如,在Linux上
/usr/share/zoneinfo
包含时区的数据库.
下面是一些时区的有效值:
-
'PST8PDT'
-
把时区值设为 California.
-
'Portugal'
-
把时区值设为 Portugal.
-
'Europe/Rome'
-
把时区值设为 Italy
-
7
-
把时区设置为 GMP 以西 7 小时(等效于 PDT).
-
INTERVAL '08:00' HOUR TO MINUTE
-
把时区设置为 GMP 以西 8 小时(等效于 PST).
-
LOCAL
DEFAULT
-
把时区值设为你的本地时区(你的操作系统确省的那个).
如果声明了一个非法的时区,时区就设为GMT(在大多数系统上如此).
如果一个基于 libpq 的客户端的环境里设置了
PGTZ
,
libpq 将在联接启动时自动把 TIMEZONE 设置成为
PGTZ
的值。
一个扩展的其它运行时参数列表可以在
管理员手册里找到
.
使用
SHOW
来显示当前
的参数设置.
诊断
-
SET VARIABLE
-
成功的返回信息.
-
ERROR: not a valid option name:
name
-
你试图设置的参数不存在.
-
ERROR: permission denied
-
为了访问一些设置,你必须是超级用户.
-
ERROR:
name
can only be set at start-up
-
有些参数在服务器启动后就无法更改了.
例子
把日期时间风格设置为传统的
PostgreSQL
风格,同时还有Europen(欧洲)风格:
SET DATESTYLE TO PostgreSQL,European;
把时区设置为 Berkeley, California,
使用双引号保存时区声明里大写字符的属性
(注意这里的日期/时间格式是 ISO):
SET TIME ZONE "PST8PDT";
SELECT CURRENT_TIMESTAMP AS today;
today
------------------------
1998-03-31 07:41:21-08
设置时区为 Italy(注意这里要求的单或者双引号来操作特殊的字符):
SET TIME ZONE 'Europe/Rome';
SELECT CURRENT_TIMESTAMP AS today;
today
------------------------
1998-03-31 17:41:31+02
兼容性
SQL92
上面显示的第二种语法(
SET TIME ZONE
)
试图仿真
SQL92
.不过,SQL只允许数字时区偏移.
所有其他参数设置(包括上面第一种语法)都是
PostgreSQL
扩展.
|