麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-SET

2019-09-08 23:33:38
字體:
來源:轉載
供稿:網友
SET
名稱
SET ― 為會話設置運行時參數 

語法
SET variable { TO | = } { value | 'value' | DEFAULT }
SET CONSTRAINTS {ALL | constraintlist} mode
SET TIME ZONE { 'timezone' | LOCAL | DEFAULT }
SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE }
  
輸入
variable 
可設置的全局變量. 
value 
參數的新值.DEFAULT 可以用于聲明把參數恢復為缺省值.允許使用字串數組,但是更復雜的結構需要用單引號或者雙引號引起來. 
可能的變量和許可的值是. 
  
CLIENT_ENCODING | NAMES 
設置多字節客戶端編碼。參數是: 
value 
  
把客戶端多字節編碼設為 value。聲明的編碼方式必須為后端支持?!?
 
這個特性只有在對制作 Postgres 的配置階段聲明了 MULTIBYTE 支持后才生效。 
  
DATESTYLE 
設置日期/時間表示風格。影響輸出格式,并且在某些時候會影響輸入的解釋?!?
  
ISO 
使用 ISO 8601-風格的日期和時間 
SQL 
使用 Oracle/Ingres-風格的日期和時間 
Postgres 
使用傳統 Postgres 格式 
European 
使用 dd/mm/yyyy 作為數字日期表達式. 
NonEuropean 
使用 mm/dd/yyyy 作為數字日期表達式. 
German 
使用 dd.mm.yyyy 作為數字日期表達式. 
US 
與 'NonEuropean'一樣 
DEFAULT 
  
恢復缺省值 (ISO) 
日期格式初始化可以用下面方法初始化: 
   
 設置 PGDATESTYLE 環境變量.如果一個基于 libpq 的客戶端的環境里設置了 PGDATESTYLE,libpq 將在聯接啟動時自動把 DATESTYLE 設置成為 PGDATESTYLE 的值?!?
用 -o -e 參數運行 postmaster 可以把日期設置成 European 習慣.要注意的是這個只是對一些日期風格的組合有影響;例如 ISO 風格不被這個參數影響. 
改變 src/backend/utils/init/globals.c里的變量. 

在 globals.c 里可以更改的變量是: 
   
 bool EuroDates = false | true  
int DateStyle = USE_ISO_DATES | USE_POSTGRES_DATES | USE_SQL_DATES | USE_GERMAN_DATES  


SEED 
為隨機數生成器設置內部種子. 
value 
種子的值被隨機范圍函數使用.典型的值是介于0 和 1之間的浮點數,這個數隨后乘以 RAND_MAX.如果使用了超出范圍的數值,生成的積隱含地溢出. 
種子還可以通過調用 setseed SQL 函數設置: 

SELECT setseed(value);
這個特性只有在對制作 Postgres 的配置階段聲明了 MULTIBYTE 支持后才生效。 
  
SERVER_ENCODING 
  
設置多字節服務器端編碼方式為: 
value 
這個值標識服務器編碼. 
這個特性只有在對制作 Postgres 的配置階段聲明了 MULTIBYTE 支持后才生效?!?
  
CONSTRAINTS 
  
  
  
  
  
  

SET CONSTRAINTS 影響當前事務約束計算的表現.SET CONSTRAINTS,在 SQL3 里面規范,有如下允許的參數: 

constraintlist 
  
逗號分隔的可推遲的約束名列表. 
mode 
  
  
  
  
  
  

約束模式.允許值是 DEFERRED 和 IMMEDIATE.

在 IMMEDIATE 模式,外鍵約束在每個查詢結束時檢查. 
在 DEFERRED 模式,標記為 DEFERRABLE 的外鍵約束只是在事務提交時或者約束的模式被顯式地設為 IMMEDIATE 時才檢查.實際上,這些只對外鍵約束起作用,因此它不應用于 UNIQUE 或者其他約束. 

TIME ZONE, TIMEZONE 
  
時區的可能值與你的操作系統有關.例如 Linux 的/usr/lib/zoneinfo 里面包含時區的數據庫. 
  
  
  
  
  
  
  
  

下面是時區的一些有效值. 
PST8PDT 
將時區設為 California?。又荩?
Portugal 
將時區設為 Portugal?。ㄆ咸蜒溃?
'Europe/Rome' 
將時區設為 Italy?。ㄒ獯罄?
DEFAULT 
將時區設為你的本地時區(TZ 環境變量的值). 
如果聲明了一個無效時區,時區就會變成 GMT(在大多數系統上). 
第二種語法在上面顯示,它允許用戶用一個類似于 SQL92 SET TIME ZONE 的語法設置時區.LOCAL 關鍵字只是用于 SQL92 兼容的 DEFAULT 可選的關鍵字. 

如果一個基于 libpq 的客戶端的環境里設置了 PGTZ,libpq 將在聯接啟動時自動把 TIMEZONE 設置成為 PGTZ 的值?!?

TRANSACTION ISOLATION LEVEL 
給當前事務設置隔離級別。 
READ COMMITTED 
當前事務查詢將只讀取在查詢之前提交的數據。READ COMMITTED 是缺省值。 
注意:SQL92 標準要求 SERIALIZABLE 為缺省的隔離級別。
SERIALIZABLE 
當前的事務查詢只能讀取在該事務里第一個 DML 語句(SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO)執行前的數據?!?
還有幾個可以 SET 命令聲明的用內部的或優化的參數: 
PG_OPTIONS 
設置各種后端參數. 
RANDOM_PAGE_COST 
  
設置優化器對非連續磁盤頁面讀取的開銷的預計值。這是以連續頁面讀取的開銷的倍數計算的。 
  
float8 
 
設置隨機頁面訪問的開銷為聲明的浮點值。 
CPU_TUPLE_COST 
設置優化器處理查詢里每條記錄的開銷的預計值。這是以連續頁面讀取的開銷的分數進行計算的?!?
  
float8 
 
把每條記錄的 CPU 處理的開銷設置聲明的浮點值。 
CPU_INDEX_TUPLE_COST 
設置優化器進行索引掃描時處理每條索引記錄的開銷的預計值。這是以連續頁面讀取的開銷的分數進行計算的?!?
float8 
把每條索引記錄的 CPU 處理的開銷設置聲明的浮點值?!?
CPU_OPERATOR_COST 
設置優化器處理 WHERE 子句里每個操作符的開銷的預計值。這是以連續頁面讀取的開銷的分數進行計算的。 
float8 
把每個操作符的 CPU 處理的開銷設置聲明的浮點值。 
EFFECTIVE_CACHE_SIZE 
設置優化器對磁盤緩沖有效尺寸的假設(也就是說,將被 Postgres 數據文件使用的內核的磁盤緩沖的部分)。這是以磁盤頁面計量的,通常每塊 8Kb?!?
float8 
把每個操作符的 CPU 處理的開銷設置聲明的浮點值?!?
ENABLE_SEQSCAN 
允許或者禁止規劃器對順序掃描規劃類型的使用。(完全禁止順序掃描是不可能的,但是把這個變量置為 OFF 將導致規劃器在存在其他可用方法的情況下不采用順序掃描。) 
ON 
允許使用順序掃描(缺省設置)?!?
OFF 
禁止使用順序掃描。 
ENABLE_INDEXSCAN 
允許或者禁止規劃器對索引掃描規劃類型的使用。 
ON 
允許使用索引掃描(缺省設置)。 
OFF 
禁止使用索引掃描?!?
ENABLE_TIDSCAN 
允許或者禁止規劃器對 TID 掃描規劃類型的使用。 
ON 
允許使用 TID 掃描(缺省設置)?!?
OFF 
禁止使用 TID 掃描。 
ENABLE_SORT 
允許或者禁止規劃器對顯式排序步驟的使用。(完全禁止顯式排序步驟是不可能的,但是把這個變量置為 OFF 將導致規劃器在存在其他可用方法的情況下不采用顯式排序步驟。) 
ON 
允許使用排序(缺省設置)?!?
OFF 
禁止使用排序。 
ENABLE_NESTLOOP 
允許或者禁止規劃器對嵌套循環聯合規劃的使用。(完全禁止嵌套循環聯合是不可能的,但是把這個變量置為 OFF 將導致規劃器在存在其他可用方法的情況下不采用嵌套循環規劃。) 
ON 
允許使用嵌套循環聯合(缺省設置)?!?
OFF 
禁止使用嵌套循環聯合?!?
ENABLE_MERGEJOIN 
打開或者關閉規劃器對融合(merge join)聯合規劃的使用?!?
ON 
允許使用融合(merge join)聯合(缺省設置)?!?
OFF 
禁止使用融合(merge join)聯合?!?
ENABLE_HASHJOIN 
打開或者關閉規劃器對哈希(散列)規劃的使用?!?
ON 
允許使用哈希(散列)聯合(缺省設置)?!?
OFF 
禁止使用哈希(散列)聯合?!?
GEQO 
為使用基因優化器算法設置閾值. 
ON 
允許基因優化器算法優化帶有11個或11個以上表的語句.(這也是缺省設置) 
  
ON=# 
帶一個整數參數,允許優化器優化帶有 # 或更多的表的查詢. 
  
OFF 
禁用基因優化器. 
請參考程序員手冊中關于 GEQO 的章節獲取關于查詢優化的更多信息。 
如果一個基于 libpq 的客戶端的環境里設置了 PGGEQO 環境變量,libpq 將在聯接啟動時自動把 GEQO 設置成為 PGGEQO 的值?!?

KSQO 
Key Set Query Optimizer?。ㄦI集查詢優化)導致查詢規劃器把 WHERE 子句帶有許多 OR 了的 AND 子句的查詢(象 "WHERE (a=1 AND b=2) OR (a=2 AND b=3) ...")轉換成一個UNION 查詢。這個方法可以比缺省的實現更快,但是它不一定得出相同的結果,因為 UNION 隱含的加了一條 SELECT DISTINCT 子句以消除相同的行。KSQO 常用于和 MicroSoft Access 這樣的東西并用,它容易生成這種類型的查詢?!?
ON 
打開優化?!?
OFF 
關閉優化(缺省設置)。 
DEFAULT 
等效于聲明 SET KSQO='OFF'?!?
KSQO 算法對帶有許多 OR 了的 AND 子句的查詢是非常必要的,不過在 Postgres 7.0 和以后的版本里,標準的規劃器可以很好的操作這些查詢?!?
MAX_EXPR_DEPTH 
設置分析器可接受的最大表達式嵌套深度.缺省值對任何常見查詢都足夠高了,但是你可以根據需要提高它.(不過如果你升得太高,你就會冒因為堆棧溢出而導致后端崩潰的危險.) 
integer 
最大深度.
輸出
SET VARIABLE 
成功的返回信息. 
WARN: Bad value for variable (value) 
如果命令設置變量失?。祷卮诵畔ⅲ?

描述
SET 將在一個會話過程中為變量修改配置參數. 
當前值可以使用 SHOW 獲得,而且可以使用 RESET 命令將各個值設回缺省.參數和值都是大小寫無關的.注意參數值總是用字符串來表達,所以用單引號括起來. 

SET TIME ZONE 改變會話的缺省時區偏移量.一個 SQL-會話總是以缺省的時區偏移作為初始值. SET TIME ZONE 語句用于改變當前的 SQL 會話的缺省時區偏移量. 

注意
SET variable 語句是 Postgres 語言的擴展.
請參考 SHOW 和 RESET 命令顯示或重置當前值. 

用法
設置時區風格為 ISO(參數不需要引號): 
SET DATESTYLE TO ISO;
對4個或更多表的查詢,使 GEQO 生效(請注意這里用單引號操作參數值里面的等號): 
 
SET GEQO = 'ON=4';
設置 GEQO 為缺省值: 
 
SET GEQO = DEFAULT;
把時區設置為 Berkeley, California,使用雙引好保存時區聲明里大寫字符的屬性: 
 
SET TIME ZONE "PST8PDT";
SELECT CURRENT_TIMESTAMP AS today;
   
         today
------------------------
 1998-03-31 07:41:21-08
設置時區為 Italy(注意這里要求的單或者雙引號來操作特殊的字符): 
 
SET TIME ZONE 'Europe/Rome';
SELECT CURRENT_TIMESTAMP AS today;
   
         today
------------------------
 1998-03-31 17:41:31+02
兼容性
SQL92
在 SQL92 里沒有 SET variable 語句(除了 SET TRANSACTION ISOLATION LEVEL)。SQL92 用于 SET TIME ZONE 的語法有一點點不同,只允許為時區聲明一個整數值: 
SET TIME ZONE { interval_value_expression | LOCAL }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黄色成人av在线 | 久久精品黄 | 亚洲午夜在线 | 一级做a爰性色毛片免费 | 久久午夜神器 | 精品99在线视频 | 久久精品a一级国产免视看成人 | 久啪视频 | 欧美精品 | wwwxxx视频 | 毛片a级毛片免费播放100 | 欧美 日本 在线 | 沉沦的校花奴性郑依婷c到失禁 | 国产成人精品一区二区三区电影 | 黄色成人av在线 | 国产一区二区不卡 | 久久久久免费电影 | 午夜小视频免费观看 | 欧美大逼网 | 精品一区二区免费视频视频 | 精品国产一区二 | 成人午夜视频在线观看 | 精品国产乱码久久久久久久久 | 男女羞羞的视频 | 高清在线观看av | 久久久综合 | 精品三区视频 | 久久综合精品视频 | 欧美国产一级片 | 国产一级一级 | 亚洲精品91 | 国产精品久久久网站 | 国产精品成人久久久久a级 av电影在线免费 | 国产人成精品一区二区三 | 国产一区精品在线观看 | 久久艹国产精品 | 成人在线视频播放 | 九九热在线精品视频 | caoporn国产一区二区 | 国产一级做a | 欧美日韩国产综合网 |