Provided by: manpages-zh_1.5.2-1.1_all bug

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>