SET variable { TO | = } { 'value' | DEFAULT } SET TIME ZONE { 'timezone' | LOCAL | DEFAULT } SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZED }
設定可能なグローバルパラメータ。
パラメータに設定する値。
設定可能な変数とそのとり得る値は次の通りです。
クライアント側のマルチバイト・コーディング方式を設定する。 値として以下のものがあります。
クライアント側のマルチバイト・コーディング方式をこの value に設定 します。指定するコーディング方式はバックエンドでサポートさ れたものでなければいけません。
クライアント側マルチバイト・コーディング方式をデフォルト値 に設定します。
このパラメータは、configure 時にマルチバイト機能を指定していた 場合にのみ使用できます。
日付/時刻の表現形式を設定します。出力の書式に影響を与え、また、 入力の解釈にも影響を与えることもあります。
ISO 8601 形式の日付と時刻を使用します。
Oracle/Ingres 形式の日付と時刻を使用します。
従来からの Postgres 形式を使用し ます。
数値型の日付表現に dd/mm/yyyy を使用します。
数値型の日付表現に mm/dd/yyyy を使用します。
数値型の日付表現に dd.mm.yyyy を使用します。
'NonEuropean' と同一です。
デフォルト値( US,Postgres )に戻します。
日付形式は以下によって初期化されます。
環境変数 PGDATESTYLE の設定。 |
日付を -o -e オプションで European 規定に設定して postmaster を起動し ます。これがある日付形式の組合せのみに影響を与えることに注意し て下さい。例えば、このパラメータは 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 |
サーバ側のマルチバイト・コーディング方式を設定します。
サーバ側のマルチバイト・コーディング方式を設定します。
サーバ側のマルチバイト・コーディング方式を設定します。 (訳注: サーバ側マルチバイト・コーディング方式をデフォルト 値に設定します。の間違いと思われます。)
このパラメータは、configure 時にマルチバイト機能を指定していた場 合にのみ使用できます。
タイムゾーンに設定可能な値は使用しているオペレーティングシステ ムに依存します。例えば Linux では、タイムゾーンのデータベースは /usr/lib/zoneinfo にあります。
タイムゾーン用に有効な値を数点示します。
カリフォルニア用タイムゾーンに設定します。
ポルトガル用タイムゾーンに設定します。
イタリア用タイムゾーンに設定します。
使用しているシステムのローカルなタイムゾーン(環境変数 TZ の値)をタイムゾーンに設定します。
無効なタイムゾーンが指定された場合、タイムゾーンは(ほとんどの システムで、いいかげんながらも)GMT になります。
libpq を使ったフロントエンドでは、環境変数 PGTZ の設定によって 初期化できます。
上の 2 番目の構文では、SQL92 の SET TIME ZONE に似た構文でタイムゾーンの設定 ができます。キーワード LOCAL は SQL92 互換のために用意された、単 なる DEFAULT の別の形式です。
現在のトランザクションの隔離レベルを設定します。
現在のトランザクションでの問い合わせは、問い合わせが始まる 前にコミットされた行のみを読みとります。READ COMMITTED がデ フォルトです。
Note: SQL92 標準では、SERIALIZABLE をデフォルト の隔離レベルとすることを要求しています。
現在のトランザクションでの問い合わせは、そのトランザクショ ンで最初に行なわれる DML 文( SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO )より前にコミットされた行のみを読みとります。
SET コマンドで指定できるパラメータには、以下 のような内部使用、または、最適化用のものも幾つかあります。
オブティマイザで使われるヒープスキャンのコストのデフォルト値を 設定します。
ヒープスキャンのコストを指定された浮動小数点値に設定します。
ヒープスキャンのコストにデフォルト値を設定します。
フロントエンドは、環境変数 PGCOSTHEAP を設定することでも初期化で きます。
オプティマイザで使われるインデックススキャンのデフォルト・コスト を設定します。
インデックススキャンのコストを指定された浮動小数点値に設定します。
インデックススキャンのコストをデフォルト値に設定します。
フロントエンドは、環境変数 PGCOSTINDEX を設定することでも初期化 できます。
遺伝的最適化アルゴリズムの使用に関する閾値を設定します。
6 個以上のテーブルを持つ文では、遺伝的最適化アルゴリズムが 有効になります。
引数として整数 # をとり、問い合わせ内に # 個以上のテーブル を持つ文で遺伝的最適化アルゴリズムを有効にします。
遺伝的最適化アルゴリズムを無効にします。
SET GEQO='ON' の指定と同一です。
このアルゴリズムはデフォルトで有効で、11 個以上のテーブルを持つ 文に GEQO が使われます。(より詳しくは、プログラマガイドの GEQO の章を参照して下さい。)
フロントエンドでは、環境変数 PGGEQO を設定することでも初期化するこ とができます
大規模な(複数)リレーションと小規模な(複数)リレーションを結 合する際に有益です。このアルゴリズムはデフォルトで無効です。 GEQO を全く使用しません。 (訳注: この段落は単なる間違いと思われます。)
キーセット・クエリオブティマイザは、問い 合わせオブティマイザを強制的に、 MicroSoft Access で生成されるような OR 句の繰り返しに最適化します。
この最適化を有効にします。
この最適化を無効にします。
SET KSQO='OFF'の指定と同一です。
大規模な(複数)リレーションと小規模な(複数)リレーションを結 合する際に有益です。このアルゴリズムはデフォルトで無効です。 GEQO を全く使用しません。 (訳注: この段落は単なる間違いと思われます。)
フロントエンドでは、環境変数 PGKSQO を設定することでも初期化する ことができます
SET はあるセッションにおける引数 variable の設定 パラメータを変更します。
現在の値は SHOW を使って入手でき、また、その値 は RESET を使ってデフォルト値に戻すことができ ます。パラメータ名と値は大文字小文字を区別しません。値のフィール ドは常に文字列として指定する、つまり、シングルクォートで括られて いることに注意して下さい。
SET TIME ZONE はそのセッションにおけるタイムゾー ンのデフォルトオフセットを変更します。1 つの SQL セッションは常に初 期のデフォルトタイムゾーンを持って始まります。 SET TIME ZONE 文は、現在の SQL セッション用のタイ ムゾーンのデフォルトオフセットを変更することに使われます。
日付の形式を ISO に設定します。
SET DATESTYLE TO 'ISO';4 個以上のテーブルを持つ問い合わせに対して GEQO を有効にします。
SET GEQO ON=4;GEQO をデフォルト値に戻します。
SET GEQO = DEFAULT;カリフォルニア、バークレイ用のタイムゾーンに設定します。
SET TIME ZONE 'PST8PDT'; SELECT CURRENT_TIMESTAMP AS today; today ---------------------- 1998-03-31 07:41:21-08イタリア用のタイムゾーンに設定します。
SET TIME ZONE 'Europe/Rome'; SELECT CURRENT_TIMESTAMP AS today; today ---------------------- 1998-03-31 17:41:31+02