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