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