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

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh