Provided by: manpages-zh_1.5.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>