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>