?
? ????? PHP ??? ???? ??? ?? ??
這個(gè)變量聲明模式的搜索順序,在一個(gè)被引用對(duì)象(表、數(shù)據(jù)類型、函數(shù)等) 只是一個(gè)簡(jiǎn)單名字,沒有附加模式部分時(shí)需要這樣的搜索。如果在另外一個(gè) 模式里有一個(gè)相同的對(duì)象名,那么使用在這個(gè)搜索路徑中找到的第一個(gè)。 一個(gè)不在搜索路徑中任何一個(gè)模式里出現(xiàn)的對(duì)象只能通過其所在模式的全稱 (打點(diǎn)的)名字來聲明。
search_path的值必需是一個(gè)逗號(hào)分隔的模式名列表。
列表中的特殊值$user與SESSION_USER
所代換的名字一樣(如果存在這個(gè)模式的話,否則$user
將被忽略)。
系統(tǒng)表模式pg_catalog總是被搜索,不管是否在搜索路徑。 如果在路徑中,那么按照路徑指定的順序搜索,否則它將在任何路徑項(xiàng) before 搜索。我們還要注意的是,臨時(shí)表模式pg_catalog也 隱含在任何這些項(xiàng)之前搜索。
同樣,如果存在的話,也會(huì)搜索當(dāng)前會(huì)話的臨時(shí)表模式,pg_temp_nnn。 使用別名pg_temp,可以在路徑中明確列出。 如果在路徑中沒有列出,那么會(huì)首先對(duì)它進(jìn)行搜索(甚至是在pg_catalog之前)。 然而,臨時(shí)模式值搜索關(guān)系(如,表,視圖,序列等)和數(shù)據(jù)類型名。 不用于搜索函數(shù)或操作符名。
如果創(chuàng)建對(duì)象時(shí)沒有聲明特定的目標(biāo)模式,那么它將被放進(jìn)搜索路徑中 的第一個(gè)模式。如果搜索路徑是空的,那么會(huì)報(bào)告一個(gè)錯(cuò)誤。
這個(gè)參數(shù)的缺省值是'"$user", public' (如果沒有public模式那么第二部分將被忽略)。這樣就支持共享使用 一個(gè)數(shù)據(jù)庫(kù)(沒有用戶擁有私有模式,所有人都共享使用public)、 私有的針對(duì)每個(gè)用戶的模式、以及兩者的組合。其它效果可以通過全局 或者針對(duì)每個(gè)用戶修改搜索路徑設(shè)置獲取。
搜索路徑當(dāng)前值可以用SQL函數(shù)
current_schemas()
檢查。它和檢查
search_path的值不太一樣,因?yàn)?
current_schemas()
顯示的是在search_path
里出現(xiàn)的請(qǐng)求如何被分析。
有關(guān)模式處理的更多信息,參閱節(jié)Section 5.7.。
這個(gè)變量聲明當(dāng)CREATE命令沒有明確聲明表空間時(shí), 所創(chuàng)建對(duì)象(表和索引等)的缺省表空間。
值要么是一個(gè)表空間的名字,要么是一個(gè)表明使用當(dāng)前數(shù)據(jù)庫(kù)缺省表空間 的空字符串。如果這個(gè)數(shù)值和任意現(xiàn)存表空間的名字都不匹配,那么 PostgreSQL將自動(dòng)使用當(dāng)前數(shù)據(jù)庫(kù)的缺省表空間。 如果聲明了一個(gè)非默認(rèn)的表空間,用戶必須對(duì)它有CREATE權(quán)限。
這個(gè)變量不用于臨時(shí)表,對(duì)臨時(shí)表是用temp_tablespaces。
有關(guān)表空間的更多的信息,參閱節(jié)Section 21.6.
當(dāng)CREATE命令沒有明確聲明一個(gè)表空間時(shí), 這個(gè)變量會(huì)聲明一個(gè)表空間用以存儲(chǔ)臨時(shí)對(duì)象(臨時(shí)表或臨時(shí)表上的索引)。 如,為了排序大對(duì)象集等目的的臨時(shí)文件也是創(chuàng)建在這種表空間中。
值是一個(gè)包含表空間名的列表。當(dāng)這個(gè)列表中不止一個(gè)名字時(shí), PostgreSQL會(huì)為要?jiǎng)?chuàng)建的臨時(shí)對(duì)象選擇一個(gè)隨機(jī)表空間名; 除非是在一個(gè)事務(wù)中,連續(xù)創(chuàng)建的臨時(shí)對(duì)象被存儲(chǔ)在列表中連續(xù)的表空間中。 如果列表中選擇的元素如果是空字符串,PostgreSQL會(huì)自動(dòng)選擇 使用當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)表空間。
當(dāng)temp_tablespaces設(shè)置成交互模式時(shí),聲明一個(gè)不存在的表空間時(shí)會(huì)報(bào)錯(cuò), 作為被指定一個(gè)表空間,用戶沒有create權(quán)限。 然而,當(dāng)使用先前設(shè)置的值時(shí),可以忽略不存在的表空間。 尤其是當(dāng)使用postgresql.conf中設(shè)置的值時(shí),應(yīng)用這條規(guī)則。
缺省值是一個(gè)空字符串,從而使得所有臨時(shí)對(duì)象被創(chuàng)建在當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)表空間。
參閱default_tablespace.
這個(gè)參數(shù)通常是 on 。設(shè)置為off表示在CREATE FUNCTION時(shí)關(guān)閉函數(shù)體字符串的合法性檢查。 關(guān)閉合法性檢查有時(shí)候會(huì)有用,比如避免從轉(zhuǎn)儲(chǔ)中恢復(fù)函數(shù)定義時(shí)向前引用的問題。
每個(gè) SQL 事務(wù)都有一個(gè)隔離級(jí)別,可以是"read uncommitted", "read committed","repeatable read", 或者 "serializable"。這個(gè)參數(shù)控制每個(gè)新事務(wù)的隔離級(jí)別。 缺省是讀已提交。
參考章Chapter 13和SET TRANSACTION獲取更多信息。
只讀的 SQL 事務(wù)不能修改非臨時(shí)表。這個(gè)參數(shù)控制每個(gè)新事務(wù)的只讀狀態(tài) 。缺省是off(讀/寫)。
參閱SET TRANSACTION。
為當(dāng)前會(huì)話控制復(fù)制相關(guān)的觸發(fā)器和規(guī)則。需要超級(jí)用戶權(quán)限才能設(shè)置該參數(shù), 然后會(huì)忽略之前的查詢緩沖計(jì)劃??赡艿闹涤?tt class="LITERAL">origin(缺省), replica和local。 參閱ALTER TABLE。
退出任何使用了超過此參數(shù)指定時(shí)間(毫秒)的語(yǔ)句,從服務(wù)器收到命令時(shí)開始計(jì)時(shí)。 如果log_min_error_statement設(shè)置為ERROR 或者更低,那么也會(huì)在日志中記錄超時(shí)。零值(缺省)關(guān)閉這個(gè)計(jì)時(shí)器。
Settingstatement_timeoutin postgresql.confis not recommended because it affects all sessions.
當(dāng)表的pg_class.relfrozenx id段 達(dá)到該設(shè)置值時(shí),VACUUM執(zhí)行一次全表掃描。缺省值是1.5億個(gè)事務(wù)。 盡管設(shè)置范圍是0到10億,VACUUM會(huì)靜默的講有效值設(shè)置為 autovacuum_freeze_max_age值的95%, 因此在表上反重疊自動(dòng)清理之前,要定期進(jìn)行手動(dòng)VACUUM。 可參閱Section 23.1.4。
指定VACUUM在掃描一個(gè)表時(shí)用于判斷是否用 FrozenXID替換事務(wù)ID的中斷壽命(在同一個(gè)事務(wù)中)。 缺省值為 50000000(5千萬(wàn))。雖然用戶可以指定一個(gè) 0-1000000000 之間的值, 但是VACUUM將會(huì)悄無聲息的將有效值限制在 autovacuum_freeze_max_age的一半之內(nèi)。 更多信息參見 節(jié)Section 23.1.4.。
設(shè)置bytea值的輸出格式。有效值是hex(缺?。┖? escape(傳統(tǒng)的PostgreSQL格式)??蓞㈤哠ection 8.4。 bytea的這兩種格式在輸入時(shí)都支持,忽略該設(shè)置。
設(shè)置在XML中如何編碼二進(jìn)制值。這適用于例子(當(dāng)通過functionsxmlelement
或xmlforest
函數(shù)將bytea值轉(zhuǎn)換到XML時(shí))。
可能的值有base64和hex,
都是用XML模式標(biāo)準(zhǔn)定義的。缺省值是base64。
更多滾與XML相關(guān)函數(shù)的信息可參閱Section 9.14。
實(shí)際上,可以根據(jù)自己的愛好來進(jìn)行選擇, 只有通過在客戶端應(yīng)用程序中的限制才能進(jìn)行約束。 這兩種方法都支持所有的值,雖然十六進(jìn)制編碼可能略高于基本的64編碼。
當(dāng)在XML和字符串值之間進(jìn)行轉(zhuǎn)換時(shí),無論設(shè)置DOCUMENT或 CONTENT都是隱式的。可參閱Section 8.13。 有效值是DOCUMENT和CONTENT。 缺省值是CONTENT。
根據(jù)SQL標(biāo)準(zhǔn),設(shè)置這個(gè)選項(xiàng)的命令是:
SET XML OPTION { DOCUMENT | CONTENT };
This syntax is also available in PostgreSQL.
設(shè)置日期和時(shí)間值的顯示格式,以及有歧義的輸入值的解析規(guī)則。由于歷史原因, 這個(gè)變量包含兩個(gè)獨(dú)立的部分:輸出格式聲明(ISO, Postgres,SQL, orGerman)、 輸入輸出的年/月/日順序(DMY,MDY, orYMD) 。這兩個(gè)可以獨(dú)立設(shè)置或者一起設(shè)置。關(guān)鍵字Euro 和European等價(jià)于DMY;關(guān)鍵字 US,NonEuro, 和 NonEuropean等價(jià)于MDY。 參閱節(jié)Section 8.5獲取更多信息。 內(nèi)置缺省是ISO, MDY,但是initdb 將在初始化配置文件時(shí)根據(jù)lc_time選擇一個(gè)合適的默認(rèn)設(shè)置。
設(shè)置間隔值的顯示格式。sql_standard會(huì)輸出匹配 SQL標(biāo)準(zhǔn)的間隔文本。當(dāng)DateStyle 參數(shù)設(shè)置為ISO時(shí),postgres值(缺?。?huì)產(chǎn)生 匹配PostgreSQL 8.4之前版本的輸出。 當(dāng)DateStyle 參數(shù)設(shè)置為非ISO輸出時(shí),postgres_verbose值會(huì)產(chǎn)生 匹配PostgreSQL 8.4之前版本的輸出。 iso_8601會(huì)產(chǎn)生匹配ISO 8601的4.4.3.2節(jié)中的帶有標(biāo)識(shí)符的時(shí)間間隔格式 的輸出。
IntervalStyle參數(shù)也可以影響歧義的間隔輸入的解釋。 參閱Section 8.5.4。
設(shè)置用于顯示和解析時(shí)間戳的時(shí)區(qū)。缺省值unknown意味著 使用系統(tǒng)環(huán)境聲明的時(shí)區(qū)。參閱節(jié)Section 8.5.3獲取更多信息。
設(shè)置服務(wù)器接受日期時(shí)間輸入中使用的時(shí)區(qū)縮寫集合。缺省值 'Default', 在全世界大多數(shù)地方都能工作的很好。另外的可用值還有 'Australia'和'India'等其它值。參見Appendix B以獲取更多信息。
這個(gè)參數(shù)為浮點(diǎn)數(shù)值調(diào)整顯示的數(shù)據(jù)位數(shù),浮點(diǎn)類型包括float4, float8,以及幾何數(shù)據(jù)類型。參數(shù)值加在標(biāo)準(zhǔn)的數(shù)據(jù)位數(shù)上 (FLT_DIG或DBL_DIG中合適的)。數(shù)值可以設(shè)置為最高 3 ,以包括部分關(guān)鍵的數(shù)據(jù)位;這個(gè)功能對(duì)轉(zhuǎn)儲(chǔ)那些需要精確恢復(fù)的浮點(diǎn)數(shù)據(jù)特別有用。 或者你也可以把它設(shè)置位負(fù)數(shù)以消除不需要的數(shù)據(jù)位。
設(shè)置客戶端編碼(字符集)。缺省使用數(shù)據(jù)庫(kù)編碼。
設(shè)置信息顯示的語(yǔ)言??山邮艿闹凳窍到y(tǒng)相關(guān)的;參閱節(jié) Section 22.1獲取更多信息。如果這個(gè)變量設(shè)置為空字符串(缺省值), 那么其值將以一種系統(tǒng)相關(guān)的方式從服務(wù)器的執(zhí)行環(huán)境中繼承。
在一些系統(tǒng)上,這個(gè)區(qū)域范疇并不存在,不過仍然允許設(shè)置這個(gè)變量, 只是不會(huì)有任何效果。同樣,也有可能是所期望的語(yǔ)言的翻譯信息不存在。 在這種情況下,你仍然能看到英文信息。
只有超級(jí)用戶可以改變這個(gè)設(shè)置。因?yàn)樗瑫r(shí)影響發(fā)送到服務(wù)器 日志和客戶端的信息。一個(gè)不正確的值可能會(huì)掩蓋服務(wù)器日志的可讀性。
為格式化金額數(shù)量設(shè)置區(qū)域。比如用于to_char
函數(shù)族??山邮艿闹凳窍到y(tǒng)相關(guān)的;參閱節(jié)Section 22.1
獲取更多信息。如果這個(gè)變量設(shè)置為空字符串(缺省值),那么其值將以
一種系統(tǒng)相關(guān)的方式從服務(wù)器的執(zhí)行環(huán)境中繼承。
設(shè)置用于格式化數(shù)字的區(qū)域,比如用于to_char
函數(shù)族??山邮艿闹凳窍到y(tǒng)相關(guān)的;參閱節(jié)Section 22.1獲取
更多信息。如果這個(gè)變量設(shè)置為空字符串(缺省值),那么其值將以一種
系統(tǒng)相關(guān)的方式從服務(wù)器的執(zhí)行環(huán)境中繼承。
設(shè)置用于格式化日期和時(shí)間值的區(qū)域。例如帶有to_char
家庭功能。目前,這個(gè)設(shè)置什么事也沒干,但將來可能會(huì)有用??山邮艿? 值是系統(tǒng)相關(guān)的;參閱節(jié)Section 22.1獲取更多信息。
如果這個(gè)變量設(shè)置為空字符串(缺省值),那么其值將以一種系統(tǒng)相關(guān)的方式
從服務(wù)器的執(zhí)行環(huán)境中繼承。
選擇沒有明確參數(shù)聲明配置的全文檢索函數(shù)所使用的配置。 參閱Chapter 12。缺省編譯時(shí)pg_catalog.simple, initdb會(huì)選擇對(duì)應(yīng)的lc_ctype環(huán)境設(shè)置 來初始化配置文件。
如果需要打開一個(gè)可以動(dòng)態(tài)裝載的模塊并且在CREATE FUNCTION 或LOAD命令里面聲明的名字沒有目錄部分(也就是說 名字里不包含斜杠),那么系統(tǒng)將搜索這個(gè)目錄以查找聲明的文件。
用于dynamic_library_path的數(shù)值必須是一個(gè)冒號(hào) 分隔(或者是在 Windows 上分號(hào)分隔)的絕對(duì)路徑列表。如果一個(gè)路徑名字 以特殊變量$libdir(PostgreSQL 編譯好的庫(kù)目錄)開頭, 那么就替換為PostgreSQL發(fā)布提供的模塊 安裝路徑。這是標(biāo)準(zhǔn)PostgreSQL發(fā)布提供的模塊安裝的目錄 (使用pg_config --pkglibdir打印這個(gè)目錄名)。 比如:
dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
或者是在 Windows 環(huán)境里:
dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
這個(gè)參數(shù)的缺省值是'$libdir'。如果把這個(gè)值設(shè)置 為一個(gè)空字符串,則關(guān)閉自動(dòng)路徑搜索。
這個(gè)參數(shù)可以在運(yùn)行時(shí)由超級(jí)用戶修改,但是這么修改的設(shè)置只能保持 到這個(gè)客戶端連接的結(jié)束,因此這個(gè)方法應(yīng)該保留給開發(fā)用途使用。 我們建議在postgresql.conf配置文件里設(shè)置。
GIN 索引返回的集合尺寸軟上限。更多信息參見節(jié)Section 53.4.。
指定在開始連接前預(yù)先加載一個(gè)或多個(gè)共享庫(kù),多個(gè)庫(kù)之間用逗號(hào)分隔。 所有庫(kù)名都轉(zhuǎn)換為小寫,除非雙引號(hào)。 該參數(shù)不能在會(huì)話開始之后更改。
因?yàn)椴⒎侵挥谐?jí)用戶才能更改此選項(xiàng),因此只能加載安裝的標(biāo)準(zhǔn)庫(kù) 目錄下plugins子目錄中的庫(kù)文件,數(shù)據(jù)庫(kù)管理員有責(zé)任確保 該目錄中的庫(kù)都是安全"safe"的。local_preload_libraries中指定 的項(xiàng)可以明確含有該目錄,例如 $libdir/plugins/mylib ; 也可以僅指定庫(kù)的名字,例如mylib (等價(jià)于$libdir/plugins/mylib)。
與local_preload_libraries不同,在會(huì)話開始之前加載模塊 與在回話中使用到該模塊的時(shí)候臨時(shí)加載相比并不具有性能優(yōu)勢(shì)。這個(gè)特性 的目的是為了調(diào)試或者測(cè)量在特定會(huì)話中不明確使用LOAD 加載庫(kù)時(shí)的性能。例如針對(duì)某個(gè)用戶將該參數(shù)設(shè)為 ALTER USER SET來進(jìn)行調(diào)試。
如果指定的庫(kù)未找到,那么連接將失敗。
每一個(gè)支持 PostgreSQL 的庫(kù)都有一個(gè)"magic block"用于確保兼容性。因此不支持 PostgreSQL 的庫(kù)不能通過這個(gè)方法加載。