Provided by: manpages-zh_1.5.2-1.1_all
NAME
SET - 改变运行时参数
SYNOPSIS
SET [ SESSION | LOCAL ] name { TO | = } { value | 'value' | DEFAULT } SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }
DESCRIPTION 描述
SET 命令修改运行时配置参数。许多在 Section 16.4 ``Run-time Configuration'' 里面列出的运行 时参数可以用 SET 在运行时设置。 (但是有些要求使用超级用户权限来修改,而其它有些则在服务器 或者会话 开始之后不能修改。)请注意 SET 只影响当前会话使用的数值。 如果 SET 或者 SET SESSION 是在一个稍后退出的事务里发出的, 那么 SET 命令的效果将在事务回 滚的之后小时。 (这个行为和PostgreSQL版本 7.3 之前的不同, 那个时候 SET 的效果在后面的错误 之后不会回滚。) 一旦包围它的事务提交,那么其效果将持续到事务的结束,除非被另外一个 SET 覆 盖。 SET LOCAL 的效果只持续到当前事务结束,不管是否提交。 一个特例是在一个事务里面的 SET 后面跟 着一个 SET LOCAL:在事务结束之前只能看到 SET LOCAL 的数值,但是之后(如果事务提交),则是 SET 的值生效。
PARAMETERS 选项
SESSION 声明这个命令只对当前会话起作用。 (如果 SESSION 或 LOCAL 都没出现,那么这个是缺 省。) LOCAL 声明该命令只在当前事务中有效。在 COMMIT 或者 ROLLBACK 之后,会话级别的设置将再次生 效。 请注意如果在 BEGIN 块之外运行,那么 SET LOCAL 将表现出没有作用,因为事务将立 即结束。 name 可设置的运行时参数的名字。可用的参数在 Section 16.4 ``Run-time Configuration'' 和 下面归档。 value 参数的新值。值可以声明为字串常量,标识符,数字,或者逗号分隔的上面这些东西的列表。 DEFAULT 可以用于把这些参数设置为它们的缺省值。 除了在 Section 16.4 ``Run-time Configuration'' 里面有文档记载的配置参数之外, 还有几个只 能用 SET 命令设置,或者是有特殊的语法的参数: NAMES SET NAMES value 是 SET client_encoding TO value 的别名。 SEED 为随机数生成器(函数 random)设置内部的种子。 允许的值是介于 0 和 1 之间的浮点 数,然后它会被乘以 231-1。 我们也可以通过调用函数 setseed 来设置种子: SELECT setseed(value); TIME ZONE SET TIME ZONE value 是 for SET timezone TO value 的一个别名。 语法 SET TIME ZONE 允 许为时区设置特殊的语法。 下面是有效值的例子: 'PST8PDT' 加州伯克利的时区。 'Portugal' 葡萄牙时区。 'Europe/Rome' 意大利时区。 -7 UTC 以西 7 小时的时区(等效于 PDT)。 INTERVAL '-08:00' HOUR TO MINUTE UTC 以西 8 小时的时区(等效于 PST)。 LOCAL DEFAULT 将时区设置为你的本地时区(服务器的操作系统缺省的那个)。 参阅 Section 8.5 ``Date/Time Types'' 获取有关时区的更多细节。
NOTES 注意
函数 set_config 提供了等效的功能。 参阅 Section 9.13 ``Miscellaneous Functions'' 。
EXAMPLES 例子
设置模式搜索路径: SET search_path TO my_schema, public; 把日期时间风格设置为传统的 POSTGRES 风格, with ``day before month'' input convention: SET datestyle TO postgres, dmy; 把时区设置为加州伯克力, 使用双引号保存时区声明里大写字符的属性 (注意这里的日期/时间格式 是 PostgreSQL): SET TIME ZONE 'PST8PDT'; SELECT current_timestamp AS today; today ------------------------------- 2003-04-29 15:02:01.218622-07
COMPATIBILITY 兼容性
SET TIME ZONE 扩展了在 SQL 标准里定义的语法。 标准只允许有一个数字时区偏移, 而 PostgreSQL 还允许完整更灵活的时区声明。 所有其它的 SET 特性都是 PostgreSQL 扩展。
SEE ALSO 参见
RESET [reset(7)], SHOW [show(l)]
译者
Postgresql 中文网站 何伟平 <laser@pgsqldb.org>