[username]]説明psqlとはPostgreSQLのターミナル型フロントエンドです。対話的に問い合わせを入力し、それをPostgreSQLに対して発行して、結果を確認することができます。ファイルから入力を読み込むことも可能です。スクリプトの記述を簡便化したり、様々なタスクを自動化したりする、いくつものメタコマンドとシェルに似た各種の機能を備えています。オプション-a--echo-all読み込んだ全ての空でない入力行を標準出力に表示します。(これは対話式に読み込まれる行には適用されません。これはECHO変数をallに設定するのと同じ意味を持ちます。(デフォルトの出力モードは位置揃えありです)。-b--echo-errors失敗したSQLコマンドを標準エラー出力に出力します。これはECHO変数をerrorsに設定するのと同等です。command--command=commandpsqlに対し、指定のコマンド文字列commandを実行するよう指示します。このオプションは繰り返すことができ、また-fオプションと任意の順序で組み合わせることができます。-cまたは-fが指定されると、psqlは標準入力からコマンドを読み取りません。その代わりに、すべての-cオプションおよび-fオプションを順に処理した後、終了します。commandは、サーバで完全に解析可能な(つまり、psql特有の機能は含まない)コマンド文字列、もしくは、バックスラッシュコマンド1つである必要があります。このため、-cオプション内ではSQLとpsqlメタコマンドを混在させることはできません。これらを同時に使用するには、-cオプションを繰り返し利用するか、あるいはパイプを使って文字列をpsqlに渡します。psqlのようにします(\\はメタコマンドの区切り文字です)。-cに渡される各SQLのコマンド文字列は、単一の問い合わせとしてサーバに送信されます。このため、トランザクションを複数に分けるBEGIN/COMMITコマンドが明示的に文字列内に含まれない限り、文字列内に複数のSQLコマンドが含まれていたとしても、サーバはそれを1つのトランザクションとして実行します。psqlは文字列内の最後のSQLコマンドの結果しか出力しません。同じ文字列をファイル、あるいはpsqlの標準入力として渡した場合、psqlは各SQLコマンドを別々に送信しますので、この場合とは動作が異なります。この動作のため、1つの-cの文字列に2つ以上のコマンドを指定すると、予期しない結果をもたらすことがあります。-cのコマンドを繰り返し使うか、あるいは、上記のようにechoを使うか、以下の例のようにシェルのヒアドキュメントを使うことで、psqlの標準入力に複数のコマンドを入力する方が良いでしょう。dbname--dbname=dbname接続するデータベースの名前を指定します。コマンドラインでオプション以外の最初の引数としてdbnameを指定するのと同じ効力を持ちます。このパラメータに=記号が含まれる場合、または有効なURI接頭辞(postgresql://またはpostgres://)から始まる場合conninfo文字列として扱われます。データベース接続制御関数を参照してください。-e--echo-queriesサーバに送られるすべてのSQLコマンドを標準出力にも送ります。ECHO変数をqueriesに設定するのと同じ効力を持ちます。-E--echo-hidden\dやその他のバックスラッシュコマンドによって生成される実際の問い合わせを表示します。これを使って、psqlの内部動作を調べることができます。これは変数ECHO_HIDDENをonに設定するのと同じ効力を持ちます。filename--file=filename標準入力ではなく、ファイルfilenameからコマンドを読み取ります。このオプションは繰り返すことができ、また-cオプションと任意の順序で組み合わせることができます。-cまたは-fが指定されると、psqlは標準入力からコマンドを読み取りません。その代わりに、すべての-cオプションおよび-fオプションを順に処理した後、終了します。その点を除けば、このオプションは\iメタコマンドとほぼ同等です。filenameに-(ハイフン)を指定すると、標準入力からEOFを示すもの、または\qメタコマンドまで読み取られます。これは対話的入力をファイルからの入力と混在させるために使うことができます。この場合、Readlineは使われないことに注意してください(-nが指定された場合と同様です)。filenameと入力するのでは、微妙に動作が異なります。一般的には、両者とも期待通りの動作を行いますが、-fを使用した場合は、エラーメッセージに行番号を付けるなどいくつか便利な機能が有効になります。このオプションを使用した場合、起動時のオーバーヘッドが減少する可能性が若干あります。シェルの入力リダイレクションを使用する方法では、(理論的には)全て手作業で入力した場合の出力とまったく同一な出力になることが保証されます。separator--field-separator=separatorseparatorを位置揃えを行わない出力におけるフィールド区切り文字として使用します。fieldsepもしくは\fと同じ効力を持ちます。hostname--host=hostnameサーバを実行しているマシンのホスト名を指定します。この値がスラッシュから始まる場合、Unixドメインソケット用のディレクトリとして使用されます。-H--htmlHTML表形式を有効にします。htmlもしくは\Hコマンドと同じ効力を持ちます。-l--list利用可能な全てのデータベースを一覧表示し、終了します。この他の接続に関連しないオプションは無視されます。\listメタコマンドと似た効力を持ちます。filename--log-file=filenameすべての問い合わせの出力を通常の出力先に出力し、さらにファイルfilenameに書き出します。-n--no-readline行編集用のReadlineを使用しません。コマンド履歴も使用しません。コピー&ペースト時のタブ展開を無効にするために有用かもしれません。filename--output=filename全ての問い合わせの出力をfilenameファイルに書き込みます。これは\oコマンドと同じ効力を持ちます。port--port=portサーバが接続監視を行っているTCPポートもしくはローカルUnixドメインソケットファイルの拡張子を指定します。環境変数PGPORTの値、環境変数が設定されていない場合はコンパイル時に指定した値(通常は5432)がデフォルト値となります。assignment--pset=assignment\pset形式により表示オプションを指定します。ここでは空白ではなく等号を使って名前と値を区切っていることに注意してください。format=latexと入力します。-q--quietpsqlがメッセージ出力なしで処理を行うように指示します。このオプションを使用した場合、これらのメッセージが表示されません。-cオプションと併用すると便利です。これは変数QUIETをonに設定するのと同じ効力を持ちます。separator--record-separator=separatorseparatorを位置揃えを行わない出力におけるレコード区切り文字として使用します。recordsepコマンドと同じです。-s--single-stepシングルステップモードで実行します。これは各コマンドがサーバに送信される前に、ユーザに対して実行するかキャンセルするかについて確認を求めることを意味します。スクリプトのデバッグを行う時に使用してください。-S--single-lineシングル行モードで実行します。このモードでは、セミコロンと同じように改行もSQLコマンドの終端として扱われます。注記このモードはどうしてもこのような方式を使用したいユーザ向けに用意されたもので、必ずしも使用が推奨されるわけではありません。1行にSQLとメタコマンドを混在させる場合、経験の浅いユーザにとってその実行順番は必ずしもわかりやすいものではありません。-t--tuples-only列名と結果の行数フッタなどの表示を無効にします。これは、\tコマンドとまったく同じ効力を持ちます。table_options--table-attr=table_optionsHTMLのtableタグで使用されるオプションを指定します。詳細は\psetを参照してください。(当然、そうする権限を持っていなければなりません)。assignment--set=assignment--variable=assignment\setメタコマンドのように、変数の代入を行います。値がある場合、コマンド行上では、名前と値を等号(=)で区切る必要があることに注意してください。変数を未設定の状態にするには、等号を指定しないでください。値が空の変数を設定するには、値を指定しないで等号のみ使用してください。これらの代入は起動時の非常に早い段階で行われます。そのため、内部で使用するために予約されている変数は後で上書きされる可能性があります。-V--versionpsqlのバージョンを表示し、終了します。-w--no-passwordパスワードの入力を促しません。サーバがパスワード認証を必要とし、かつ、.pgpassファイルなどの他の方法が利用できない場合、接続試行は失敗します。バッチジョブやスクリプトなどパスワードを入力するユーザが存在しない場合にこのオプションは有用かもしれません。このオプションはセッション全体にわたって設定されたままであることに注意してください。このため\connectメタコマンドの使用に関しても初期接続試行と同様に影響します。-W--passwordデータベースに接続する前に、psqlは強制的にパスワード入力を促します。サーバがパスワード認証を要求する場合psqlは自動的にパスワード入力を促しますので、これが重要になることはありません。psqlは、サーバにパスワードが必要かどうかを判断するための接続試行を無駄に行います。した余計な接続試行を防ぐために-Wの入力が有意となる場合もあります。このオプションはセッション全体に対して設定されたままであることに注意してください。このため初期接続試行と同様に\connectメタコマンドの使用にも影響を与えます。-x--expanded拡張テーブル形式モードを有効にします。これは\xコマンドと同じです。-X,--no-psqlrc起動用ファイル(psqlrcファイルおよびユーザ用の~/.psqlrcファイルのどちらも)を読み込みません。-z--field-separator-zero位置揃えを行わない出力用のフィールド区切り文字をゼロバイトに設定します。-0--record-separator-zero位置揃えを行わない出力用のレコード区切り文字をゼロバイトに設定します。-0と連携する時に有用です。-1--single-transactionこのオプションは、1つ以上の-cオプションや-fオプションと組み合わせてのみ使うことができます。これによりpsqlは、最初のそのようなオプションの前にBEGINコマンドを発行し、最後のオプションの後にCOMMITコマンドを発行するようになります。することで、全てのコマンドが単一のトランザクションに囲まれます。これによりすべてのコマンドが成功して完了するか、変更がまったく行われないかのいずれかになります。コマンド自体がBEGIN、COMMIT、ROLLBACKを含んでいる場合、このオプションは期待した効果を得ることができません。個別のコマンドがトランザクションブロック内部で実行できない場合、このオプションを指定することで、そのトランザクション全体が失敗します。-?--help[=topic]psqlに関するヘルプを表示し、終了します。オプションのtopicパラメータ(デフォルトはoptions)はpsqlのどの部分を説明するかを選択します。commandsはpsqlのバックスラッシュコマンドについて、optionsはpsqlに渡すことができるコマンド行オプションについて、variablesはpsqlの設定変数についてのヘルプを表示します。終了ステータスpsqlは、正常に終了した時には0を、psqlにとって致命的なエラー(メモリ不足やファイルが見つからないなど)が発生した時には1を、セッションが対話式でない状態でサーバとの接続が不完全になった時には2を、ON_ERROR_STOP変数が設定されている状態でスクリプトでエラーが発生した時には3をシェルに返します。使用方法データベースへの接続psqlはPostgreSQLの正式なクライアントアプリケーションです。データベースに接続するには、接続するデータベース名、ホスト名、サーバのポート番号、接続する際に使用するユーザ名がわかっていなければなりません。psqlでは、それらをコマンドラインオプションで指定することができます。接続するデータベース名は-d、ホスト名は-h、サーバのポート番号は-p、接続するユーザ名は-Uを使用してそれぞれ指定します。オプションでない引数がある場合、それはデータベース名(データベース名が与えられている場合にはユーザ名)とみなされます。これらのオプションは全て指定されている必要はありません。便利なデフォルト値があります。ホスト名を省略した場合、psqlはUnixドメインソケット経由でローカルホスト上のサーバに、Unixドメインソケットを持たないマシンではlocalhostにTCP/IP経由で接続します。デフォルトのポート番号はコンパイル時に設定されます。データベースサーバは同じデフォルト値を使用するので、多くの場合、ポートは指定する必要はありません。デフォルトのユーザ名とデータベース名は、OSのユーザ名です。任意のユーザ名で全てのデータベースに接続できるわけではありません。データベース管理者は、接続権限をユーザに知らせておかなければなりません。デフォルトが完全には適用できない時は、入力の手間を省くために、環境変数PGDATABASE、PGHOST、PGPORT、PGUSERに適当な値を設定することもできます。環境変数を参照してください。~/.pgpassファイルを使用すれば、定常的なパスワードの入力を省略でき、便利です。パスワードファイルを参照してください。他の接続パラメータの指定方法としてconninfo文字列またはURIがあります。これは、データベース名の代わりに使用されます。この機構により、接続全体に関する非常に幅広い制御を行うことができます。接続パラメータのLDAP検索で説明するLDAPを使用することもできます。パラメータキーワードを参照してください。何らかの原因(権限がない、指定したホストでサーバが稼働していないなど)で接続ができなかった場合は、psqlはエラーメッセージを表示し、終了します。標準入力および標準出力の両方が端末である場合、psqlはクライアントの符号化方式を「auto」に設定します。これはロケール設定(Unixシステムでは環境変数LC_CTYPE)から適切なクライアント符号化方式を決定します。想定した通りに動作しない場合、環境変数PGCLIENTENCODINGを使用してクライアント符号化方式を上書きすることができます。通常の操作において、psqlは、psqlが現在接続しているデータベース名の後に=>の文字列が付いたプロンプトを表示します。help.testdb=>プロンプトに対しユーザはSQLコマンドを入力することができます。通常、入力された行はコマンド終了を意味するセミコロンに達した時点でサーバへと送信されます。改行はコマンドの終了とはみなされません。したがって、わかりやすくするために、コマンドは複数の行にわたって記述することができます。コマンドが送信され問題なく実行されると、画面にコマンドの結果が表示されます。コマンドが実行される度に、psqlはLISTENとNOTIFYによって生成された非同期通知イベントを検査します。Cの形式のブロックコメントは、サーバに送信され、サーバによって取り除かれますが、SQL標準のコメントはpsqlによって取り除かれます。メタコマンドpsql内で入力されたコマンドのうち、引用符で囲まれていないバックスラッシュで始まるものは、psql自身が実行するpsqlのメタコマンドとして扱われます。これらのコマンドを使うと、データベースを管理したりスクリプトを作成するにあたって、psqlがより便利になります。メタコマンドはよくスラッシュコマンド、またはバックスラッシュコマンドとも呼ばれます。psqlコマンドは、バックスラッシュ、コマンド本体、引数の順につなげた形式になっています。引数とコマンド本体の間および引数と引数の間は、空白文字によって分割されています。引数に空白を含める場合は単一引用符で囲みます。単一引用符を引数に含める場合には、単一引用符で括られた文字列の中で、その単一引用符を2つ続けてください。単一引用符で囲われた文字は、C言語と同じような置換の対象となります。(改頁)、\digits(8進数で表された文字)、\xdigits(16進数で表された文字)があります。単一引用符で括られたテキスト内でその他の任意の文字の前にバックスラッシュを付けた場合は、その文字が何であろうとその一文字だけとして扱われます。引数の中で逆引用符(`)で囲まれたテキストは、コマンドラインとして認識され、シェルに渡されます。コマンドの結果(末尾の改行は削除されます)で逆引用符で囲まれたテキストを置き換えます。SQL差し替えに示すように、引数の中で引用符で囲まれていないコロン(:)の後にpsql変数名が存在する場合、そこは変数の値に置換されます。コマンドには、引数として(テーブル名などの)SQLの識別子を取るものがあります。これらの引数は次のようなSQLの構文規則に従います。引用符を伴わない文字は強制的に小文字になります。行われず、空白文字を識別子内に含めることができます。二重引用符内では、連続する2つの二重引用符は1つの二重引用符とみなされます。引数の解析は行末または引用符で囲まれていないもう1つのバックスラッシュが見つかると終了します。引用符がないバックスラッシュは新しいメタコマンドの始まりと解釈されます。\\(バックスラッシュ2つ)という特別な文字の並びは引数の終わりを意味するので、SQLコマンドが残されている場合は、その解析を続けます。このように、SQLコマンドとpsqlコマンドは1つの行に自由に混合して記述することができます。あらゆる場合において、メタコマンドの引数は行をまたぐことはできません。メタコマンドとして、以下のものが定義されています。「揃える」になっていれば「揃えない」に設定します。このコマンドは後方互換性を保持するためにあります。一般的な解決策は\psetを参照してください。]PostgreSQLサーバへの新規の接続を確立します。接続のパラメータは、位置の構文、あるいはconninfo接続文字列で指定することができます。接続文字列で説明します。コマンドでデータベース名、ユーザ、ホストあるいはポートを省略した場合、新しい接続では以前の接続での値を再利用することができます。デフォルトでは、conninfo文字列を処理する場合を除き、以前の接続での値が再利用されます。引数で-reuse-previous=onあるいは-reuse-previous=offを渡すことで、このデフォルトと異なる動作をさせることができます。コマンドで特定のパラメータを指定せず、かつ再利用もしない場合は、libpqのデフォルトが使用されます。dbname、username、host、portのいずれについても-を指定するのは、パラメータを省略するのと同じになります。新規接続に成功した場合、以前の接続は閉じられます。接続の試行が(ユーザ名の間違いやアクセス拒否などの理由で)失敗した場合、psqlが対話式モードである場合に限り、それまでの接続が保持されます。非対話式スクリプトを実行している場合は、処理はエラーとなり、即座に停止します。この実装の違いは、対話モードでは入力ミスに対するユーザの利便性を考慮し、非対話モードではスクリプトによって間違ったデータベースを操作することを防ぐための安全策を考慮した結果決められました。]問い合わせ結果として表示されるテーブルのタイトルの設定、または、タイトルの設定解除を行います。titleと同じ効力を持ちます。(このコマンド名は「標題(caption)」に由来します。以前はHTMLのテーブルの標題を設定するためだけに使われていたためです。]現在の作業ディレクトリをdirectoryに変更します。引数がない場合は、現在のユーザのホームディレクトリに変更します。pwdを使用してください。\conninfo現在のデータベース接続に関する情報を出力します。]フロントエンド(クライアント)コピーを行います。SQLコマンドを実行する操作ですが、サーバで指定ファイルに対する読み込みまたは書き込みを行うのではなく、psqlがファイルの読み書きや、サーバとローカルファイルシステム間のデータ送信を行います。この場合、ファイルへのアクセス権限はサーバではなくローカルユーザのものを使用するので、SQLのスーパーユーザ権限は必要ありません。programが指定された場合、commandがpsqlにより実行され、commandから、または、commandへのデータはサーバとクライアント間を行き来します。ここでも、実行権限はローカル側のユーザであり、サーバ側ではなく、SQLスーパーユーザ権限は必要とされません。stdinでは、データ行は、コマンドの発行源と同じところから、\.を読み取るまで、あるいは、ストリームがEOFに達するまで読み続けます。このオプションは、SQLスクリプトファイルの内部でテーブルにデータを投入する場合に便利です。countコマンドのステータスは表示されません(これはデータ行と混同してしまうかもしれないからです)。pstdoutと書いてください。このコマンドの構文はSQLのCOPYコマンドに似ています。データの入力元と出力先以外のすべてのオプションはCOPYと同じです。このため\copyコマンドには特別な解析規則が適用されていることに注意してください。psqlの変数の置換規則やバックスラッシュエスケープは適用されません。ヒントこの操作はSQLのCOPYコマンドほど効率が良いわけではありません。これは、全てのデータをクライアント/サーバ接続を通じてやり取りしなければならないからです。データ量が多い時はSQLコマンドを使用する方が良いでしょう。\copyrightPostgreSQLの著作権および配布条項を表示します。]問い合わせのバッファを実行し(\gと同様)、その結果をクロス表形式で表示します。問い合わせは少なくとも3つの列を返す必要があります。colVで特定される出力列が縦方向のヘッダになり、colHで特定される出力列が横方向のヘッダになります。colDは表内に表示される出力列を特定します。オプションのsortcolHで水平方向のヘッダをソートする列を指定できます。それぞれの列の指定は、列番号(1から始まります)でも列名でも可能です。列名については、通常のSQLの大文字小文字変換および引用の規則が適用されます。省略した場合、colVは列1、colHは列2となります。colHはcolVとは異なるものでなければなりません。colDを指定しない場合、問い合わせの結果にはちょうど3つの列がなければならず、colVでもcolHでもない列がcolDとなります。縦方向のヘッダは一番左の列に表示され、colVの列にある値が問い合わせ結果と同じ順序で現れますが、重複するものは除かれます。横方向のヘッダは1行目に表示され、colHの列にある値が現れますが、重複するものは除かれます。デフォルトでは、これらは問い合わせの結果と同じ順序で表示されます。オプションのsortcolH引数が指定された場合は、colHの値は対応するsortcolHの値に従ってソートされて横方向のヘッダに現れますが、sortcolHの列の値は整数値でなければなりません。クロス表の内側では、colHのそれぞれの個別値xとcolVのそれぞれの個別値yに対して、その交点(x,y)に位置するセルに、問い合わせの結果のcolHの値がxでcolVの値がyである行のcolD列の値が現れます。そのような行がなければ、セルは空欄になります。そのような行が複数あると、エラーが報告されます。NULLやデフォルトなどの特別な属性を表示します。関連付けられているインデックス、制約、ルールおよびトリガも表示されます。外部テーブルでは関連する外部サーバも表示されます。(「パターンのマッチング」については後述のパターンで定義されています。)一部の種類のリレーションでは、\dは各列について追加の情報を表示します。シーケンスでは列の値、インデックスではインデックス式、外部テーブルでは外部データラッパのオプションです。\d+というコマンド形式も同一ですが、より多くの情報を表示します。identityの設定も表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。注記\dがpattern引数なしで使用された場合は、\dtvmsEと同じ意味となり、可視である全てのテーブル、ビュー、マテリアライズドビュー、シーケンス、外部テーブルの一覧が表示されます。これは純粋に利便性のためです。]集約関数と、その戻り値のデータ型、演算対象となるデータ型の一覧を表示します。patternが指定された場合、そのパターンに名前がマッチする集約のみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。]アクセスメソッドの一覧を表示します。patternが指定された場合は、そのパターンにマッチする名前のアクセスメソッドのみが表示されます。コマンド名の後に+が付加された場合は、各メソッドに関連付けられたハンドラ関数および説明も表示されます。]テーブル空間を一覧表示します。patternが指定された場合、そのパターンに名前がマッチするテーブル空間のみが表示されます。コマンド名に+が付与された場合、各テーブル空間に関連付けされたオプション、ディスク上のサイズ、権限、摘要についても表示します。]文字セット符号化方式間の変換の一覧を表示します。patternが指定された場合、そのパターンに名前がマッチする変換のみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。コマンド名に+を付与すると、各オブジェクトに関連する説明を付けて表示します。]型キャストの一覧を表示します。patternが指定された場合、そのパターンに元データ型または変換先データ型がマッチするキャストのみが表示されます。コマンド名に+を付与すると、各オブジェクトに関連する説明を付けて表示します。family、rule、triggerという種類のオブジェクトについての説明を表示します。他のコメントはすべて、これらのオブジェクト種類用の対応するバックスラッシュコマンドによって表示されます。\ddはpatternにマッチするオブジェクトの説明を表示します。引数が指定されていない場合は、適切な種類の可視なオブジェクトの説明を表示します。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。SQLコマンドを使用して作成することができます。]デフォルトのアクセス権限設定を一覧表示します。組み込みのデフォルトから権限設定が変更されたロール(および適切ならばスキーマも)ごとに1項目示されます。patternが指定された場合、パターンにマッチするロール名またはスキーマ名の項目のみが表示されます。PRIVILEGESコマンドを使用して、デフォルトのアクセス権限を設定します。権限表示の意味はGRANTで説明します。]ドメインを一覧表示します。patternが指定されている場合は、パターンに名前がマッチするドメインのみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。コマンド名に+を付与すると、各オブジェクトに関連する権限と説明を付けて表示します。]このコマンド群において、E、i、m、s、t、vという文字はそれぞれ、外部テーブル、インデックス、マテリアライズドビュー、シーケンス、テーブル、ビューを表します。これらの種類のオブジェクトの一覧を表示するために、これらの文字の中の任意の文字またはすべてを任意の順番で指定することができます。\ditはインデックスとテーブルを列挙します。+がコマンド名に付与された場合、各オブジェクトは、もしあればディスク上の物理容量と関連する説明をつけて表示されます。patternが指定されている場合は、パターンに名称がマッチする項目のみが表示されます。デフォルトでは、ユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためにはパターンまたはS修飾子を付与してください。servers」)を一覧表示します。patternが指定されている場合は、名前がパターンにマッチするサーバのみが表示されます。\des+構文が使用された場合、サーバのACL、型、バージョン、オプション、説明など各サーバの完全な説明が表示されます。tables」)を一覧表示します。patternが指定された場合、パターンにテーブル名またはスキーマ名がマッチするもののみが表示されます。\det+が使用された場合、汎用オプションと外部テーブルの説明も表示されます。users」)を一覧表示します。patternが指定されている場合は、名前がパターンにマッチするユーザのみが表示されます。\deu+構文が使用された場合、各マップについて追加情報が表示されます。注意\deu+ではリモートユーザのユーザ名とパスワードも表示される可能性があります。これらを外部に曝さないように注意しなければなりません。wrappers」)を一覧表示します。patternが指定されている場合、名前がパターンにマッチする外部データラッパのみが表示されます。\dew+構文が使用された場合、外部データラッパのACL、オプションおよび説明も表示されます。(集約)、「normal」、「trigger」、「window」で分類される関数の種類の一覧を表示します。特定種類の関数のみを表示させるには、対応する文字a、n、t、wをコマンドに付けて下さい。patternが指定されている場合は、そのパターンに名前がマッチする関数のみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。安全性、所有者、セキュリティ分類、アクセス権限、言語、ソースコードや説明を含む付加的情報も表示されます。ヒント特定のデータ型を引数とする関数や特定のデータ型を返す関数を検索するには、ページャの検索機能を使用して\dfの出力をスクロールしてください。]全文検索設定を一覧表示します。patternが指定された場合、このパターンにマッチする名前の設定のみが表示されます。\dF+形式が使用された場合、使用される全文検索パーサや各パーサトークン型についての辞書リストなど各設定の完全な説明が表示されます。]全文検索辞書を一覧表示します。patternが指定された場合、このパターンにマッチする名前の辞書のみが表示されます。\dFd+形式が使用された場合、選択された辞書それぞれについて使用される全文検索テンプレートやオプション値など更なる情報が表示されます。]全文検索パーサを一覧表示します。patternが指定された場合、このパターンにマッチする名前のパーサのみが表示されます。\dFp+形式が使用された場合、使用される関数や認知されるトークン型のリストなど各パーサの完全な説明が表示されます。]テキスト検索テンプレートを一覧表示します。patternが指定された場合、このパターンにマッチする名前のテンプレートのみが表示されます。\dFt+形式が使用された場合、テンプレートそれぞれについて使用される関数名など更なる情報が表示されます。]データベースロールを一覧表示します。(「ユーザ」と「グループ」という概念は「ロール」に統合されましたので、このコマンドは\duと同じものになりました。デフォルトでは、ユーザによって作成されたロールのみが表示されます。システムロールを含めるにはS修飾子を付与してください。patternが指定されている場合は、そのパターンに名前がマッチするロールのみが表示されます。\dg+構文が使用された場合、ロールそれぞれについて更なる情報が表示されます。現時点では各ロールのコメントが追加されます。\dl\lo_listの別名で、ラージオブジェクトの一覧を表示します。]手続き言語を一覧表示します。patternを指定すると、パターンに名前がマッチする言語のみが表示されます。デフォルトではユーザが作成した言語のみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。アクセス権限、システムオブジェクトか否かという情報を付けて各言語が表示されます。]スキーマ(名前空間)の一覧を表示します。patternを指定すると、パターンに名前がマッチするスキーマのみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。パターンまたはS修飾子を追加すると、システムオブジェクトが表示に追加されます。コマンド名の後に+を付加すると、各オブジェクトに関連付けられている権限と説明が(存在すれば)表示されます。]演算子と、その演算項目と結果の型を一覧表示します。patternを指定すると、パターンに名前がマッチする演算子のみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。コマンド名に+を付加すると、各演算子についての追加情報が表示されますが、現在はその元になっている関数の名前だけです。]照合順序を一覧表示します。patternを指定すると、パターンに名前がマッチする照合順序のみが表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。コマンド名の後に+を付加すると、各照合順序に関連付けられている説明が(存在すれば)表示されます。現在のデータベースの符号化方式で使用できる照合順序のみが表示されることに注意してください。このため同じインストレーションであってもデータベースによって結果が異なる可能性があります。]テーブル、ビュー、シーケンスを、関連付けられているアクセス権限とともに一覧表示します。patternを指定すると、パターンに名前がマッチするテーブル、ビュー、シーケンスのみが表示されます。アクセス権限の設定にはGRANTコマンドとREVOKEコマンドが使われます。権限の表示に関する意味はGRANTで説明します。]定義済み設定に関する設定を一覧表示します。これらの設定はロール固有、データベース固有、またはその両方です。role-patternおよびdatabase-patternはそれぞれ特定のロールやデータベースを選択するために使用します。パターンが省略された場合、または*が指定された場合、ロール固有ではない、または、データベース固有ではない設定を含め、すべての設定を表示します。DATABASEコマンドを使用します。]データ型を一覧表示します。patternを指定すると、パターンにマッチする名前を持つ型のみを表示します。+をコマンド名に付けると、型ごとに、型の内部名、サイズ、enum型では許される値、関連する権限も表示されます。デフォルトではユーザが作成したオブジェクトのみが表示されます。システムオブジェクトを含めるためには、パターンまたはS修飾子を付与してください。]データベースロールを一覧表示します。(「ユーザ」と「グループ」という概念は「ロール」に統合されましたので、このコマンドは\dgと同じものになりました。patternが指定されている場合は、そのパターンに名前がマッチするロールのみが表示されます。デフォルトでは、ユーザによって作成されたロールのみが表示されます。システムロールを含めるにはS修飾子を付与してください。\du+構文が使用された場合、ロールそれぞれについて更なる情報が表示されます。現時点では各ロールのコメントが追加されます。]インストールされた拡張を一覧表示します。patternを指定すると、パターンにマッチする名前の拡張のみを表示します。\dx+形式が使用された場合、マッチする拡張それぞれについて拡張に属するすべてのオブジェクトが表示されます。]イベントトリガを一覧表示します。patternを指定すると、パターンにマッチする名前のイベントトリガのみを表示します。+をコマンド名に追記すると、関連する説明を付けて各オブジェクトを表示します。]filenameが指定された場合、このファイルが編集されます。エディタを終了した後、その内容は問い合わせバッファにコピーされます。filenameがない場合、現在の問い合わせバッファが一時ファイルにコピーされ、同様に編集されます。(このため、この方法では「スクリプト」を作成できません。この目的のためには\iを使用してください)。これは問い合わせの終端がセミコロンである(もしくは問い合わせがセミコロンを含む)場合、すぐに実行されることを意味しています。セミコロンを含まない場合は、問い合わせバッファ内に保持されて入力を待ちます。セミコロンまたは\gを入力して送信するか、\rを入力してキャンセルしてください。行番号(line_number)が指定された場合、psqlはファイルまたは問い合わせバッファ内の指定行にカーソルを位置づけます。すべてが数字の引数が1つだけ指定された場合、psqlはそれをファイル名ではなく行番号であるとみなすことに注意してください。ヒント使用するエディタを設定、カスタマイズする方法については環境を参照してください。]引数を空白で区切り、標準出力に出力し、改行します。スクリプトが出力するところどころに情報を記載する場合に有用です。使用例を次に示します。1999最初の引数が引用符で囲まれていない-nである場合、最後の改行は出力されません。ヒント\oコマンドを使用して問い合わせの出力先を変更した場合、このコマンドではなく、\qechoを使用した方が良いかもしれません。FUNCTIONコマンド構文で取り出し、編集します。編集は\editと同様の方法で行われます。エディタ終了後、更新されたコマンドは問い合わせバッファ内で待機しています。セミコロンか\gを入力して送信するか、\rを入力して取り消すかしてください。text)のように名前と引数で指定することができます。同じ名前の関数が複数存在する場合、引数の型を指定しなければなりません。FUNCTIONのテンプレートが編集用に表示されます。行番号が指定された場合、psqlは関数本体における指定行にカーソルを移動します。(関数本体は通常、ファイルの先頭から始まらないことに注意してください。)ヒント使用するエディタを設定、カスタマイズする方法については環境を参照してください。]クライアント側の文字セット符号化方式を設定します。引数を指定しない場合、このコマンドは現在の符号化方式を表示します。\errverbose最も最近のサーバのエラーメッセージを最大の冗長さ、つまりVERBOSITYがverboseに、そしてSHOW_CONTEXTがalwaysに設定されているかのようにして、繰り返します。VIEWコマンドの形式で取得して、編集します。編集は\editの場合と同じ方法で行われます。エディタを終了した後、更新されたコマンドが問い合わせバッファで待っている状態になります。送信するにはセミコロンあるいは\gを、キャンセルするには\rを入力してください。VIEWテンプレートが編集用に提供されます。行番号を指定した場合、psqlはカーソルをビュー定義の指定した行に位置づけます。]位置揃えされていない問い合わせの出力用の、フィールドの区切り文字を設定します。デフォルトは、縦棒(「|」)です。一般的な出力オプションの設定方法については、\psetを参照してください。]現在の問い合わせ入力バッファをサーバに送ります。オプションを指定すれば、問い合わせ出力をfilenameに格納したり、その出力をシェルコマンドcommandにパイプで渡すこともできます。問い合わせが成功しゼロ以上のタプルが返る場合にのみファイルまたはコマンドに書き出されます。問い合わせが失敗する場合やデータを返さないSQLコマンドでは書き出されません。\gだけを指定した場合は、セミコロンと実質的に同じです。\gに引数を指定した場合は、\oコマンドの「一度限りの」代替手段として使用できます。\gexec現在の問い合わせ入力バッファをサーバに送信し、問い合わせの出力(あれば)の各行の各列をSQL文として実行します。my_tableの各列にインデックスを作成するには次のようにします。INDEX生成された問い合わせは行が返された順番で実行され、また2つ以上の列が返された場合は、各行の中で左から右に実行されます。NULLのフィールドは無視されます。生成された問い合わせは、そのままサーバに送信されて処理されるため、psqlのメタコマンドとすることはできず、またpsqlの変数の参照を含むこともできません。個別の問い合わせで失敗した場合、残りの問い合わせの実行はON_ERROR_STOPが設定されているのでなければ継続します。個々の問い合わせの実行はECHOの処理に従います。(\gexecを使う場合、ECHOをallあるいはqueriesに設定することが推奨されることが多いでしょう。問い合わせのログ出力、シングルステップモード、時間表示(timing)、およびその他の問い合わせ実行に関する機能は、生成された各問い合わせにも適用されます。]現在の問い合わせ入力バッファをサーバに送信し、問い合わせの出力をpsql変数(変数参照)に格納します。実行される問い合わせは正確に1行を返さなければなりません。行の各列は、列と同じ名前を持つ別々の変数に格納されます。以下のようになります。10prefixを指定した場合、使用する変数の名前を作成する時にその文字列が問い合わせの列名の前に付けられ、次のようになります。10列の結果がNULLである場合、対応する変数は設定されず未設定状態となります。問い合わせが失敗、または1行を返さない場合、変数は変更されません。]指定したSQLコマンドの構文に関するヘルプを表示します。commandが指定されていない場合は、psqlは構文ヘルプが存在する全てのコマンドの一覧を表示します。commandをアスタリスク(*)にすると、全てのSQLコマンドの構文ヘルプが表示されます。入力を簡単にするため、複数の単語からなるコマンドを引用符で囲む必要はありません。tableと入力するだけで十分です。\Hまたは\htmlHTML問い合わせ出力形式を有効にします。HTML形式が有効になっている場合は、デフォルトの位置揃えされたテキスト形式に戻します。このコマンドは互換性と簡便性のために存在します。他の出力オプションについては、\psetを参照してください。filenamefilenameファイルから入力を読み取り、キーボードから入力された場合と同じように実行します。filenameが-(ハイフン)の場合、EOFを示すもの、または\qメタコマンドが読まれるまで標準入力から読み込みます。これは対話的な入力とファイルからの入力を混在させるために使うことができます。Readlineと同じ挙動は、それが最も外部のレベルで動作している場合にのみ利用されることに注意してください。読み取られた行を画面に表示させる場合は、ECHO変数をallに設定する必要があります。filename\irコマンドは\iと似ていますが、相対ファイル名の解決方法が異なります。対話モードで実行している場合は2つのコマンドの動作は同一です。スクリプトから呼び出す場合、\irは、現在の作業ディレクトリではなく、そのスクリプトの格納ディレクトリから見た相対ファイル名として解釈します。セット符号化方式、アクセス権限を一覧表示します。patternを指定すると、パターンにマッチする名前を持つデータベースのみを表示します。コマンド名に+を付けると、データベースのサイズ、デフォルトのテーブル空間、説明も表示します。(サイズ情報は現在のユーザが接続可能なデータベースでのみ表示されます。filenameデータベースからOIDがloidであるラージオブジェクトを読み取り、filenameに書き出します。これはlo_exportサーバ関数とは微妙に異なります。lo_export関数は、データベースサーバを実行しているユーザ権限で、サーバ上のファイルシステムに対して動作します。ヒントラージオブジェクトのOIDを確認するには、\lo_listを使用してください。]ファイルをPostgreSQLのラージオブジェクトに保存します。オプションで、そのオブジェクトに指定したコメントを関連付けることができます。152801として受け付けられたことを示します。今後この新規作成されたラージオブジェクトにアクセスする場合に、この番号が使用できます。可読性を高めるために、常に全てのオブジェクトに人間がわかるようなコメントを関連付けることが推奨されます。\lo_listコマンドではOIDとコメントの両方が表示されます。このコマンドは、ローカルなユーザによってローカルなファイルシステムに対して動作します。サーバ側のlo_importは、サーバのユーザによってサーバ上のファイルシステムに対して動作します。このコマンドとサーバ側のlo_importは、この点で微妙に異なっています。\lo_list現在データベースに保存されている全てのPostgreSQLラージオブジェクトの一覧を、そのオブジェクトに付けられたコメントと一緒に表示します。loidOIDがloidであるラージオブジェクトをデータベースから削除します。ヒントラージオブジェクトのOIDを確認するには、\lo_listを使用してください。]以降の問い合わせの結果を、filenameで指定されたファイルに保存するか、またはシェルコマンドcommandにパイプで渡すようにします。引数がない場合、問い合わせの出力はリセットされて標準出力になります。「問い合わせの結果」には、全てのテーブル、コマンドの応答、データベースサーバからの注意メッセージだけでなく、データベースに問い合わせを行う(\dのような)各種バックスラッシュコマンドの出力が含まれます。エラーメッセージは含まれません。ヒント問い合わせの結果の間にテキストを挿入するには、\qechoを使用してください。\pまたは\print現在の問い合わせバッファを標準出力に書き出します。]指定したユーザ(デフォルトは現在のユーザ)のパスワードを変更します。ROLEコマンドとしてサーバに送信します。これによりコマンド履歴やサーバログなどどこにも新しいパスワードが平文では残りません。name変数nameに代入するテキストを入力するようにユーザを促します。プロンプトtextをオプションで指定することができます。(複数の単語をプロンプトで使用する場合はそのテキストを単一引用符でくくってください。)デフォルトでは\promptは入出力に端末を使用します。]このコマンドは問い合わせ結果のテーブル出力に影響するオプションを設定します。optionには、どのオプションを設定するのかを記述します。valueの意味は選択したオプションにより変わります。以下のオプション別の説明の通り、オプションの中にはvalueを省略することでトグルや設定解除を行うものがあります。した動作の記載がなければ、valueを省略すると、単に現在の設定値が表示されることになります。何も引数をつけずに\psetを実行すると、すべての表示オプションの現在の状態を表示します。以下は、表示の調整に関するオプションです。bordervalueは数値でなければなりません。基本的には、この数字が大きくなればなるほど、表示するテーブルが持つ境界線は増えますが、詳細はそれぞれの出力形式に依存しています。HTML書式では、この値は直接border=...属性に反映されます。2と同じとして扱われます。latexおよびlatex-longtable書式では、さらにデータ行の間に境界線を付ける、3という値をとることができます。columnswrapped書式の対象幅を設定し、そして、ページャを必要とする、拡張自動モードにおける縦表示への切替えに十分な幅で出力するかどうかを決定する幅制限を設定します。ゼロ(デフォルト)では、環境変数COLUMNS、もしCOLUMNSが設定されていなければ、検出したスクリーンの幅、により対象幅が制御されます。columnsがゼロの場合、wrapped書式はスクリーン出力にのみ影響を与えることになります。columnsが非ゼロの場合は、ファイルやパイプへの出力も同様に折り返されます。(またはx)valueを指定する場合は、拡張(expanded)モードを有効または無効にするonまたはoff、あるいはautoのいずれかでなければなりません。valueを省略した場合、このコマンドは通常モードと拡張モードの設定をトグルします。拡張モードを有効にした場合、問い合わせ結果は左に列名、右にデータという2つの列で出力されます。このモードは、データが通常の「水平(horizontal)」モードによる画面表示に適していない場合に有用です。自動(auto)設定の場合、問い合わせの出力が2列以上でかつ画面幅より広ければ拡張モードが使用され、そうでなければ通常モードが使用されます。自動設定は位置揃え書式または折り返し書式でのみ有効です。この他の書式では、常に拡張モードが無効の場合と同様に動作します。fieldsep位置揃えなしの出力書式で使用されるフィールド区切り文字を指定します。これにより、例えばタブ区切り、カンマ区切りといった他プログラムに要求される形式を作成することができます。'\t'と入力します。デフォルトのフィールド区切り文字は'|'(縦棒)です。fieldsep_zero位置揃えなしの出力書式で使用されるフィールド区切り文字をゼロバイトに指定します。rows)数)を有効にするonまたは無効にするoffのいずれかでなければなりません。valueを省略した場合、このコマンドはフッタの表示、非表示をトグルします。(tabularを使用)、latex-longtableまたはtroff-ms.のいずれかに設定します。(つまり、1文字でも十分であるということです)。unaligned書式は、表示行の1行に1つの行の全列を、現在有効なフィールド区切り文字で区切って書き出します。これは他のプログラムに読み込ませることを目的とした出力(例えばタブ区切りやカンマ区切り書式)を生成する場合に有用です。aligned書式は、標準的で人間が読みやすいように、美しく整形されたテキスト出力です。これがデフォルトです。wrapped書式はalignedと似ていますが、幅の広いデータ値を複数行に折り返して対象の列幅に合うように出力します。対象の幅はcolumnsオプションの項に記述されているように決定されます。psqlは列ヘッダタイトルを折り返さないことに注意して下さい。このためwrapped書式は列ヘッダに必要とする幅全体が対象より長い場合、alignedと動作が同じになります。html、asciidoc、latex、latex-longtableおよびtroff-ms書式は対応するマークアップ言語を使用する文書内に含めることを目的とした表を出力します。出力自体は完全な文書ではありません。HTMLでは必要性がないかもしれませんが、LaTeXでは完全な文書ラッパを持たせなければなりません。latex-longtableではLaTeXのlongtableおよびbooktabsパッケージも必要です。linestyle境界線の表示形式をascii、old-asciiまたはunicodeのいずれかに設定します。一意になれば省略形が許されます。(つまり一文字で十分であることを意味します。デフォルトの設定はasciiです。このオプションはalignedおよびwrapped出力書式のみで有効です。ascii形式は通常のASCIIを使用します。データ内の改行は右側余白に+を使用して表します。wrapped書式で、改行文字のない行が2行にまたがるときは、先頭行の右側余白にドット(.)を表示し、次の行の左側余白にもドットを表示します。8.4以前で使用されていた方法で整形します。データ内の改行は列区切りの左側に:記号を使用して表します。データを改行文字なしに折り返す際には、列区切りの左側に;記号を使用して表します。unicode形式はUnicode矩形描画文字を使用します。データ内の改行は右側の余白に復帰記号を使用して表します。データを改行文字なしに折り返す際には、省略記号を先頭行の右側余白に表示し、次の行の左側余白にも表示します。border設定がゼロより大きい場合、linestyleオプションはまた、境界線を描画する文字も決定します。通常のASCII文字はどのような場合でも動作しますが、Unicode文字が表示できる環境では、その方が見た目が良くなります。nullnull値の代わりに表示する文字列を設定します。デフォルトでは何も表示しません。そのため、よく空の文字列と間違うことがあります。'(null)'とする人もいます。numericlocalevalueを指定する場合、それぞれ10進数マーカの左に桁のくくりを分離するロケール固有の文字を表示するonまたは表示しないoffのいずれかでなければなりません。valueを省略した場合、このコマンドは通常出力かロケール固有の数値出力かをトグルします。pager問い合わせおよびpsqlのヘルプを出力する際の、ページャプログラムの使用を制御します。環境変数PAGERが設定されている場合、出力は指定したプログラムにパイプで渡されます。PAGERが設定されていない場合は、プラットフォーム依存のデフォルト(moreなど)が使用されます。pagerオプションがoffの場合、ページャプログラムは使用されません。pagerオプションがonの場合、ページャは適切な場合、つまり出力先が端末であり、その画面に収まらない場合に使用されます。pagerオプションはalwaysに設定することもできます。すると画面に収まるかどうかに関わらずすべての端末出力でページャが使用されます。pagerはページャの使用をトグルします。pager_min_linespager_min_linesがページ高より大きな数に設定されている場合、少なくともこれに設定されている行数の出力がなければ、ページャプログラムを呼び出しません。デフォルトの設定は0です。recordsep位置揃えなしの出力書式で使用されるレコード(行)の区切り文字を指定します。デフォルトは改行文字です。recordsep_zero位置揃えなしの出力書式で使用されるレコードの区切り文字をゼロバイトに指定します。T)html出力書式では、これはtableタグ内に記述する属性を指定します。これを使用して、例えば、cellpaddingやbgcolorを指定することができます。borderによって処理されているので、このコマンドでborderを指定する必要はないでしょう。valueの指定がない場合、テーブル属性の設定は解除されます。左揃えされたデータ型を含む各列の幅の比率を制御します。0.6'として指定します。指定がない出力列は最後に指定された値を使用します。C)今後表示される全てのテーブル用にテーブルタイトルを設定します。これは出力に説明のためのタグを付けたい場合に有用です。valueがない場合、タイトルの設定が解除されます。t)valueを指定する場合、それぞれタプルのみの表示を有効にする、onまたは無効にするoffのいずれかでなければなりません。valueを省略した場合、このコマンドはタプルのみの表示と通常表示をトグルします。通常表示では列のヘッダ、タイトル、各種フッタなどのその他の情報が追加されます。タプルのみのモードでは、テーブルの実データのみが表示されます。unicode_border_linestyleunicodeの線の形式の境界の形式をsingleまたはdoubleのどちらかに設定します。unicode_column_linestyleunicodeの線の形式の列の形式をsingleまたはdoubleのどちらかに設定します。unicode_header_linestyleunicodeの線の形式のヘッダの形式をsingleまたはdoubleのどちらかに設定します。例節に、これらの書式がどのように見えるかを示した図があります。ヒント\psetには各種のショートカットコマンドがあります。\a、\C、\H、\t、\T、\xを参照してください。\qまたは\quitpsqlプログラムを終了します。スクリプトファイルでは、そのスクリプトの実行のみが終了します。]このコマンドは、\echoと同じです。出力が\oにより設定された問い合わせ出力チャネルに書き出される点が異なります。\rまたは\reset問い合わせバッファをリセット(クリア)します。]psqlのコマンドラインの履歴をfilenameに出力します。filenameが省略された場合、履歴は標準出力に書き出されます(適切であればページャを使います)。このコマンドは、psqlがReadlineサポートなしの状態でビルドされた場合は利用できません。]psqlの変数nameをvalue、または複数のvalueが与えられた場合はそれらを連結したものに設定します。引数しか指定されない場合は、変数に空の値を設定されます。変数を未設定とするには、\unsetコマンドを使用してください。引数をまったく取らない\setは、現在設定されているpsql変数すべての名前と値を表示します。変数名には、文字、数字、アンダースコアを使用することができます。詳細は、後述の変数を参照してください。変数名は大文字小文字を区別します。必要ならば任意の変数に任意の値を設定できますが、psqlはいくつかの変数を特別なものとして扱っています。これらについては変数に関する節にて説明します。注記このコマンドはSQLのSETコマンドとは関係ありません。]環境変数nameをvalueに設定します。valueが与えられない場合は、その環境変数を未設定状態にします。FUNCTIONコマンドの形式で、指定された関数の定義を抽出し表示します。この定義は、\oで設定された現在の問い合わせ出力チャネルに出力されます。text)のように名前と引数で指定することができます。同じ名前の関数が複数存在する場合は、引数の型を指定しなければなりません。コマンド名に+を付けると、出力行に関数本体の先頭行を1行目と数える行番号が付けられます。VIEWコマンドの形式で取得して表示します。定義は現在の問い合わせの出力チャネルに表示されます。これは\oで設定できます。コマンド名の後に+が付加された場合は、出力行に1から番号が付けられます。\t出力列名ヘッダと行数フッタの表示を切り替えます。tuples_onlyと同じで、簡便性のために用意されています。table_optionsHTML出力書式におけるtableタグ内部に記述する属性を指定します。table_optionsと同じ効力を持ちます。]パラメータがない場合、各SQL文にかかる時間(ミリ秒単位)の表示の有無を切り替えます。パラメータがある場合、指定した通りに設定します。namepsql変数nameを未設定状態にします(削除します)。|command現在の問い合わせバッファを、filenameファイルに出力するか、もしくは、シェルコマンドcommandにパイプで渡します。]中断するか問い合わせが失敗するまで、現在の問い合わせバッファを繰り返し(\gと同じように)実行します。実行の間に指定秒数(デフォルトは2)の休止が入ります。titleの文字列(あれば)、問い合わせ開始時の時刻、および遅延間隔を含むヘッダとともに表示されます。]拡張テーブル形式モードを設定またはトグルします。expandedと同じ効力を持ちます。]テーブル、ビュー、シーケンスを、関連付けられているアクセス権限とともに一覧表示します。patternを指定すると、パターンに名前がマッチするテーブル、ビュー、シーケンスのみが表示されます。privileges)」)の別名です。]別のシェルを起動するか、もしくは、シェルコマンドcommandを実行します。引数はこれ以上解釈されず、そのままシェルに渡されます。変数置換規則やバックスラッシュエスケープは適用されません。]ヘルプ情報を表示します。オプションのtopicパラメータ(デフォルトはcommands)はpsqlのどの部分を説明するかを選択します。commandsはpsqlのバックスラッシュコマンドについて、optionsはpsqlに渡すことができるコマンド行オプションについて、variablesはpsqlの設定変数についてのヘルプを表示します。パターン各種\dコマンドでは、patternパラメータを渡して、表示するオブジェクト名を指定することができます。単純な場合では、パターンが正確にオブジェクト名に一致します。パターン内の文字は、SQLの名前と同様、通常小文字に変換されます。FOOはfooという名前のテーブルを表示します。SQLの名前と同様、パターンを二重引用符で括ることで小文字への変換が取り止められます。二重引用符自体をパターン内に含めなければならない場合、二重引用符で括った文字列の中で二重引用符を二重に記載してください。これもSQLの引用符付き識別子の規則に従ったものです。"FOO""BAR"はFOO"BARという名前のテーブルを表示します(foo"barではありません)。SQLの名前と異なり、パターンの一部を二重引用符で括ることができます。FOO"FOO"BARはfooFOObarという名前のテーブルを表示します。patternパラメータが完全に省略されている場合、\dコマンドは現在のスキーマ検索パス内で可視のオブジェクトを全て表示します。これは*というパターンを使用することと同じです。(オブジェクトを含むスキーマが検索パス上にあり、同じ種類かつ同じ名前のオブジェクトが検索パス上それより前に存在しない場合、そのオブジェクトは可視であるといいます。これは明示的なスキーマ修飾がない名前でオブジェクトを参照できるということと同じです。可視か否かに関わらずデータベース内の全てのオブジェクトを表示するには、*.*というパターンを使用します。パターン内部では、*は(0文字を含む)任意の文字の並びにマッチし、?は任意の1文字にマッチします。(この記法はUnixシェルのファイル名パターンと似ています。int*は、intから始まる名前を持つテーブルを表示します。二重引用符の中では、*と?はその特別な意味を失い、文字そのものにマッチします。ドット(.)を含むパターンは、スキーマ名にオブジェクト名が続くパターンとして解釈されます。foo*.*bar*は、スキーマ名がfooで始まるスキーマ内のテーブル名がbarを含むテーブルを全て表示します。ドットがない場合、パターンは現行のスキーマ検索パス内で可視的なオブジェクトのみにマッチします。ここでも、二重引用符で括られた文字列内のドットは特別な意味を失い、文字そのものにマッチすることになります。上級者は文字クラス(例えば任意の数にマッチする[0-9])などの正規表現を使用することができます。POSIX正規表現の規定通りに動作しますが、上述のように.が区切り文字となる点、*は正規表現の.*になる点、?が.になる点、$がそのまま扱われる点は例外です。.の代わりに?と、R*の代わりに(R+|)と、R?の代わりに(R|)と記述することで、これらのパターン文字を模擬することができます。通常の正規表現の解釈と異なり、パターンは常に名前全体にマッチするため、$を正規表現文字として扱う必要はありません。(言い替えると、$は自動的にパターンに追加されます。パターンの適用位置を決められない場合は、*を先頭や末尾に記載してください。二重引用符の内側では、正規表現の特殊文字はその意味を失い、文字そのものにマッチすることになる点に注意してください。正規表現の特殊文字は、演算子名のパターン(つまり\doの引数)では文字そのものにマッチします。変数psqlは一般的なUnixコマンドシェルに似た変数の置換機能を提供します。変数とは名前と値の組み合わせです。値として任意の長さの任意の文字列を使用できます。名前は文字(非ラテン文字を含む)、数字、アンダースコアから構成されなければなりません。変数を設定するには、psqlの\setメタコマンドを以下のように使用します。barこの例では、変数fooをbarという値に設定しています。変数の内容を取り出すには、以下のように変数名の前にコロンを付けます。:foobarこれは通常のSQLコマンド内とメタコマンド内の両方で動作します。後述のSQL差し替えで詳しく説明します。第二引数なしで\setを呼び出すと、空文字列を値として持つ変数が設定されます。変数を未設定状態にする(つまり削除する)ためには、\unsetコマンドを使用してください。すべての変数の値を表示するためには、引数なしで\setを呼び出してください。注記\setの引数は他のコマンドと同じ置換規則に従います。'something'のような参照を作成して、Perlにおける「ソフトリンク」やPHPにおける「可変変数」に当たるものを得られます。残念ながら(あるいは幸運にも)、このような構成をうまく使用する方法はありません。:fooのようにして変数をコピーするのは、完全に有効な方法です。これらの変数の多くは、psqlに特別扱いされています。これらは、変数の値を変更することにより、実行時に変更可能なオプションの設定を表現します。psqlの変更可能な状態を表現しているものもあります。これらの変数を別の目的で使用することもできますが、即座にプログラムの動作がおかしくなる可能性があるため、推奨されません。慣習上、特別視される変数の名前はすべてASCII大文字(と数字とアンダースコア)からなります。将来的な互換性を最大限考慮するために、自分で作成した変数にはこのような変数名を使用しないでください。以下に特別に取り扱われる変数の一覧を示します。AUTOCOMMITこの変数の値がonの場合(これがデフォルトです)、各SQLコマンドの実行が成功すると、自動的にコミットされます。TRANSACTIONコマンドを入力する必要があります。値がoffもしくは未設定の場合、明示的にCOMMITもしくはENDを発行するまで、SQLコマンドはコミットされません。自動コミット無効モードでは、ABORTやROLLBACKを発行して、明示的に失敗したトランザクションを放棄しなければなりません。コミットせずにセッションを終了した場合は、作業が失われてしまうので注意してください。注記PostgreSQLは、伝統的に自動コミット有効モードで動作していましたが、自動コミット無効モードの方がよりSQLの仕様に近いものです。自動コミット無効モードは、システム全体に対するpsqlrcファイル、もしくは、個人用の.psqlrcファイルで設定すれば実現できます。COMP_KEYWORD_CASESQLキーワードを補完する時に大文字小文字のどちらを使用するかを決定します。lowerまたはupperが設定された場合、補完された単語はそれぞれ小文字または大文字になります。補完された単語は入力済みの文字の大文字小文字を引き継ぎますが、何も入力されていない場合はそれぞれ小文字または大文字に補完されます。DBNAME現在接続しているデータベース名です。この変数は(プログラム起動時も含め)データベースに接続する度に設定されますが、これを未設定にすることもできます。ECHOallに設定された場合、空でない全ての入力行は、標準出力に書き出されます。(これは対話式に読み込まれる行には適用されません。この動作をプログラム起動時に設定するには、-aスイッチを使用してください。queriesに設定された場合、psqlは各問い合わせがサーバに送信されるときに表示します。これに対応するオプションは-eです。errorsに設定された場合、失敗した問い合わせのみが標準エラー出力に出力されます。これに対応するオプションは-bです。設定されていないか、none(または上に示した以外の任意の値)に設定された場合、どの問い合わせも表示されません。ECHO_HIDDENこの変数がonに設定されている場合、バックスラッシュコマンドがデータベースに問い合わせを行う時、最初にその問い合わせが表示されます。この機能は、PostgreSQL内部動作について調べたり、自作プログラム内で同様の関数機能を用意したりするのに役立つでしょう。(この動作をプログラム起動時に選択するには-Eスイッチを使用してください)。この変数をnoexecという値に設定した場合、問い合わせは実際にサーバに送信、実行されずに、単に表示されるだけになります。ENCODING現在のクライアント側の文字セット符号化方式です。FETCH_COUNTこの変数が0より大きな整数値に設定されている場合、SELECT問い合わせの結果は、指定した行数の集合として取り出され、表示されます。デフォルトの動作では、表示する前にすべての結果が取り出されます。したがって、結果セットの大きさに関係なくメモリの使用量が限定されます。この機能を有効とする場合に100から1000までの値がよく使用されます。この機能を使用する際には、既に一部の行が表示されている場合、問い合わせが失敗する可能性があることに注意してください。ヒント任意の出力書式でこの機能を使用することができますが、デフォルトのaligned書式は適していません。FETCH_COUNT行のグループそれぞれが別々に整形されてしまい、行のグループによって列幅が異なることになるためです。他の出力書式は適切に動作します。HISTCONTROLこの変数をignorespaceに設定した場合、空白文字から始まる行は履歴リストには入りません。ignoredupsに設定した場合、直前の履歴と同じ行は履歴リストに入りません。ignorebothに設定した場合は、上記の2つを組み合わせたものになります。この変数を設定しない場合、またはnoneに設定した場合(または上記以外の値を設定する場合)は、対話モードで読まれる全ての行が履歴リストに保存されます。注記この機能はBashの機能を真似たものです。HISTFILE履歴を格納するために使用されるファイルの名前です。デフォルトは~/.psql_historyです。~/.psqlrcで以下を記述すると、psqlはデータベース毎に分けて履歴を管理します。:DBNAME注記この機能はBashの機能を真似たものです。HISTSIZEコマンド履歴に保存するコマンド数です。デフォルト値は500です。注記この機能はBashの機能を真似たものです。HOST接続中のデータベースサーバホストです。この変数は(プログラム起動時も含め)データベースに接続する度に設定されますが、未設定にすることもできます。IGNOREEOFこの変数を未設定にすると、対話式セッションにEOF文字(通常Control+D)が送信された時、psqlが終了します。数値を設定すると、指定された数だけ、送信されたEOF文字を無視してから終了します。数値以外を設定した場合は、デフォルトの10になります。注記この機能はBashの機能を真似たものです。LASTOIDINSERTや\lo_insertコマンドによって返された、最後に影響を受けたOIDの値です。この変数は、次のSQLコマンドの結果が表示されるまでの間のみ保証されています。ON_ERROR_ROLLBACKonに設定されている場合、トランザクションブロック内である文がエラーとなった時に、そのエラーは無視され、トランザクションは継続します。interactiveに設定されている場合、対話式セッション内の場合にのみエラーは無視されます。スクリプトファイルを読み込んでいる場合は無視されません。設定されていないか、またはoffに設定されている場合、トランザクションブロック内の文がエラーになると、トランザクション全体をアボートします。エラーロールバックのモードは、トランザクションブロック内で各コマンドの実行直前に暗黙的なSAVEPOINTを行い、コマンドが失敗した時にこのセーブポイントにロールバックすることで実現されています。ON_ERROR_STOPデフォルトではエラーの後もコマンド処理は続行されます。この変数がonに設定されていると、代わりに即座に停止します。対話モードではpsqlはコマンドプロンプトに戻ります。これ以外ではpsqlは終了し、エラーコード1を返す致命的エラー条件と区別できるように、エラーコード3を返します。どちらの場合でも、現在実行中のスクリプト(トップレベルのスクリプト、もしあれば関連性を持つ他のスクリプトすべて)は即座に終了します。トップレベルのコマンド文字列が複数のSQLコマンドを含む場合、その時点のコマンドで処理は終了します。PORT接続中のデータベースサーバのポートです。この変数は(プログラム起動時も含め)データベースに接続する度に設定されますが、未設定にすることもできます。PROMPT1PROMPT2PROMPT3これらの変数は、psqlが発行するプロンプトの見た目を指定します。後述のプロンプトを参照してください。QUIETこの変数をonに設定することはコマンドラインオプション-qと同じ効力を持ちます。対話式モードではあまり役立ちません。SHOW_CONTEXTこの変数は値never、errors、あるいはalwaysに設定することができ、CONTEXTフィールドがサーバからのメッセージに表示されるかどうかを制御します。デフォルトはerrorsです(CONTEXTはエラーメッセージ内では表示されますが、注意や警告メッセージでは表示されません)。この設定はVERBOSITYがterseに設定されている場合は効果がありません。(\errverboseも参照してください。こちらは受け取ったばかりのエラーについて、冗長なメッセージが必要なときに使えます。)SINGLELINEこの変数をonに設定することはコマンドラインオプション-Sと同じ効力を持ちます。SINGLESTEPこの変数をonに設定することはコマンドラインオプション-sと同じ効力を持ちます。USER接続中のデータベースユーザです。この変数は(プログラム起動時も含め)データベースに接続する度に設定されますが、未設定にすることもできます。VERBOSITYこの変数をdefault、verbose、terseのいずれかに設定することで、エラー報告の冗長性を制御できます。(\errverboseも参照してください。こちらは受け取ったばかりのエラーについて、冗長なメッセージが必要なときに使えます。)SQL差し替えpsqlの変数には、通常のSQL文やメタコマンドの引数の中で使用(「差し替え:interpolate」)できるという重要な機能があります。SQLリテラルと識別子として使用される変数の値が適切に引用符付けされていることを保証する機能を提供します。引用符付けをまったく行わずに差し替えるための構文は、変数名の前にコロン(:)を付けることです。:foo;この例では、問い合わせはmy_tableテーブルに対して行われます。これが安全ではない場合があることに注意して下さい。変数の値はそのままコピーされるので、対応のとれていない引用符やバックスラッシュコマンドさえも含めることができます。挿入した場所で変数が展開された時に、確実に正しい意味になるようにしなければなりません。値がSQLリテラルや識別子内で使用される場合、それが引用符付けされるように調整することがもっとも安全です。SQLリテラルとして変数値を引用符付けするためには、コロンの後に変数名を単一引用符で括って記述してください。SQL識別子として値を引用符付けするためには、コロン後に変数名を二重引用符で括って記述してください。これらの式は正しく引用符と変数値内に埋め込まれた特殊文字を扱います。前の例は以下のように記述することでより安全になります。:"foo";変数差し替えは、引用符付けされたSQLリテラルと識別子の中では行われません。したがって':foo'などの式は、変数の値から引用符付けしたリテラルを生成するようには動作しません。(値の中に埋め込まれた引用符を正しく取り扱えませんので、もし動作したとしたら安全ではありません。)この機能の有効な利用方法の例は、ファイルの内容をテーブル列にコピーする場合も利用することができます。その際は、ファイルをまず変数に読み込み、引用符付けした文字列として変数名を差し替えます。(:'content');(my_file.txtにNULバイトが含まれている場合、これはうまく動作しないことに注意してください。psqlは変数値内に埋め込まれたNULバイトをサポートしません。指定した変数が現在設定されていない場合、差し替え時の見かけの置換(:name、:'name'、:"name")は行われません。コロンをバックスラッシュでエスケープすれば、常に差し替えから保護することができます。変数用のコロン構文は、ECPGのような組み込みの問い合わせ言語用の標準SQLとして規定されています。配列の一部の切り出し、および型キャスト用のコロン構文はPostgreSQLの拡張であり、標準での使用方法と競合することがあります。SQLリテラルまたは識別子として変数の値をエスケープさせる引用符付きコロン構文はpsqlの拡張です。プロンプトpsqlが発行するプロンプトは好みに応じてカスタマイズできます。PROMPT1、PROMPT2、PROMPT3という3つの変数はプロンプトの表示内容を示す文字列や特別なエスケープシーケンスを持ちます。プロンプト1はpsqlが新しいコマンドを受け付ける際に発行される通常のプロンプトです。プロンプト2は、例えばコマンドがセミコロンで終わっていない、または、引用符が閉じていないなど、コマンドの入力中にさらなる入力が期待される際に発行されます。STDINコマンドを実行中で、端末上で行の値の入力が必要な際に発行されます。選択されたプロンプト変数の値はそのまま文字として表示されます。パーセント(%)が含まれる場合は例外です。この場合は、次の文字に従って、特定のテキストに置換されます。置換対象として定義されているのは次のものです。%Mデータベースサーバの(ドメイン名付きの)完全なホスト名です。その接続がUnixドメインソケットの場合は[local]となります。Unixドメインソケットがコンパイル時に設定したデフォルトの場所に存在しない場合は、[local:/dir/name]となります。%m最初のドット以降を省略したデータベースサーバのホスト名です。その接続がUnixドメインソケットの場合は[local]となります。%>データベースサーバが監視するポート番号です。AUTHORIZATIONコマンドの実行によってデータベースセッション中に変わることがあります)。%/接続中のデータベース名です。%~デフォルトデータベースの場合に~(チルダ)が出力される点を除いて、%/と同じです。AUTHORIZATIONコマンドの実行によってデータベースセッション中に変わることがあります)。%p現在接続しているバックエンドのプロセスIDです。%Rプロンプト1の場合、通常は=ですが、シングル行モードでは^、また、データベースとの接続が切れたセッションでは!になります(\connectが失敗した場合に発生します)。プロンプト2の場合、%Rは、なぜpsqlがさらなる入力を要求しているかによって決まる文字に置き換えられます。きの識別子が終了していない場合は二重引用符、ドル引用文字列が終了していない場合はドル記号、そして閉じられていない左括弧がある場合は(となります。プロンプト3の場合、%Rに対しては何も表示されません。%xトランザクションの状態です。トランザクションブロックの外にいる場合は空文字列に、トランザクションブロックの中にいる場合は*に、失敗したトランザクションブロックの中にいる場合は!に、(接続されていないなど)トランザクションの状態が不定の場合は?になります。%l現在の文の内部での行番号で、1から始まります。%digits指定された8進の数値コードの文字に置換されます。%:name:psqlの変数nameの値です。詳細は変数を参照してください。%`command`通常の「逆引用符」による置き換えと同様で、commandの出力です。%]プロンプトには端末制御文字を含めることができます。具体的には、色、背景、プロンプトテキストの様式の変更、端末ウィンドウのタイトルの変更などが指定できます。Readlineの行編集機能を適切に動作させるためには、印字されない制御文字を%[と%]で囲んで、不可視であることを明示しなければなりません。この記号の組み合わせはプロンプト内に複数記述することができます。'これにより、VT100互換のカラー端末では、太字フォントで(1;)、黒地に黄色の(33;40)プロンプトが表示されます。プロンプトにパーセント記号を入れる場合は、%%と記述してください。注記この機能はtcshの機能を真似たものです。コマンドライン編集psqlは行内編集や繰り返し入力が簡便になるようにReadlineライブラリをサポートしています。コマンド履歴は、psqlの終了時に自動的に保存され、psqlの起動時に再読み込みされます。タブによる補完もサポートされていますが、SQLのパーサとしてコマンドを解釈して判断してくれるわけではありません。LEVELと干渉することもあります。タブによる補完を何らかの事情により使用したくなければ、ホームディレクトリ内の.inputrcというファイルに以下のように書き込むことで無効にできます。on$endif(これはpsqlの機能ではなく、Readlineの機能です。詳細についてはReadlineのドキュメントを参照してください)。columnsがゼロの場合、wrapped書式の幅、および、幅の広い出力がページャを必要とするかどうかを決める幅を制御します。自動拡張モードでは縦書式に切り替えるべきかどうかを制御します。PAGER問い合わせ結果が画面に入り切らない場合、このコマンドによって結果をパイプします。一般的に指定される値は、more、またはlessです。デフォルトはプラットフォームによって異なります。ページャの使用を無効にするにはPAGERを空にするか、\psetコマンドのページャ関連のオプションを使用します。PSQL_EDITOREDITORVISUAL\eコマンド、\efコマンド、\evコマンドで使用されるエディタです。変数はこの順に検索され、設定された最初のものが使用されます。組み込みのデフォルトエディタは、Unixシステムではvi、Windowsシステムではnotepad.exeです。PSQL_EDITOR_LINENUMBER_ARG\e、\efまたは\evが行番号引数を付けて使用された場合、この変数は、ユーザのエディタに開始行番号を渡すために使用されるコマンドライン引数を指定します。Emacsまたはviのようなエディタでは、これはプラス(+)記号です。オプション名と行番号の間に空白文字が必要な場合は、変数の値の最後に空白文字を含めてください。'Unixシステム上のデフォルトは+です。(デフォルトのエディタviに対応するものですが、他のよく使われる多くのエディタでも役に立ちます。Windowsシステムではデフォルトはありません。PSQL_HISTORYコマンド履歴ファイルの場所を指定します。チルダ(~)展開が行われます。PSQLRCユーザの.psqlrcファイルの場所を指定します。チルダ(~)展開が行われます。SHELL\!コマンドが実行するコマンドです。TMPDIR一時ファイルを格納するディレクトリです。デフォルトは/tmpです。環境変数を参照してください)。~/.psqlrc-Xオプションが渡されない場合、psqlは、データベースに接続した後、通常のコマンドを受け付け始める前に、システム全体用の開始ファイル(psqlrc)のコマンドを、続いてユーザ用の開始ファイル(~/.psqlrc)のコマンドを読み込み、実行しようとします。これらのファイルは、\setやSETコマンドを使用して、好みに応じたクライアントやサーバを設定するために使用することができます。システム全体の開始ファイルはpsqlrcという名前で、インストレーションの「システム設定」ディレクトリの中で探されます。--sysconfdirを実行するのが最も確実です。デフォルトでは、PostgreSQLの実行ファイルを含むディレクトリからの相対パスで../etc/になります。このディレクトリの名前は環境変数PGSYSCONFDIRを使って明示的に設定することができます。ユーザ用の開始ファイルは.psqlrcという名前で、実行しているユーザのホームディレクトリの中で探されます。Windowsではそのような概念がないので、個人用の開始ファイルは%APPDATA%\postgresql\psqlrc.confという名前になります。ユーザ用の開始ファイルは環境変数PSQLRCで明示的に設定することができます。システム全体用の開始ファイルとユーザ用の開始ファイルに、例えば、~/.psqlrc-9.2や~/.psqlrc-9.2.5のように、ハイフン記号とPostgreSQLのメジャーリリース番号またはマイナーリリース番号をファイル名に付加することで、特定バージョンのpsql向けのファイルとすることができます。マッチするバージョンのファイルはバージョン指定のないファイルよりも優先して読み込まれます。.psql_historyコマンドライン履歴はファイル~/.psql_history、Windowsの場合は%APPDATA%\postgresql\psql_historyに格納されます。履歴ファイルの場所は環境変数PSQL_HISTORYを介して明示的に設定することができます。注釈psqlは、同じまたはより古いメジャーバージョンのサーバと稼働させることが最善です。バックスラッシュコマンドは、サーバがpsql自身のバージョンより新しいと失敗しやすくなります。\d系列のバックスラッシュコマンドは7.4までさかのぼるバージョンのサーバで動作するはずですが、psql自身よりもサーバが新しい場合は、必ずしもそうではありません。SQLコマンドの実行ならびに問い合わせ結果の表示といった一般的な機能はより新しいメジャーバージョンのサーバとでも動作するはずですが、すべての場合において保証することはできません。メジャーバージョンが異なる複数のサーバとの接続のためにpsqlを使用したいのであれば、psqlの最新版を使用することを勧めます。他の方法として、各メジャーバージョンのpsqlのコピーを保持し、確実にそれぞれのサーバに対応するバージョンを使用することができます。実際には、この複雑さを追加することは必要ではないはずです。(--no-psqlrc)を暗示しましたが、現在ではそうなっていません。PostgreSQLの8.4より前では、psqlで1文字のバックスラッシュコマンドの最初の引数をコマンドの直後に空白文字を挟むことなく記述できました。現在では何らかの空白が必要になっています。Windowsユーザ向けの注意psqlは「コンソールアプリケーション」としてコンパイルされます。Windowsのコンソールウィンドウは、システムの他の部分とは異なる符号化方式を使用しているので、psqlで8ビット文字を使用する時には特別な配慮が必要です。psqlは、コンソール用コードページとして問題があることを検出すると、起動時に警告を発します。コンソール用コードページを変更するためには、以下の2つが必要です。(1252はドイツ圏における適切なコードページです。システムに合わせて変更してください)。Cygwinを使用しているのであれば、このコマンドを/etc/profileに追加してください。Consoleに設定してください。ラスタフォントは、ANSIコードページでは正しく動作しないためです。最初に、複数行にわたるコマンドの入力例を示します。プロンプトの変化に注意してください。TABLEさて、ここでテーブル定義を再度確認してみます。|次に、プロンプトをもっと面白いものに変更してみます。testdb=>テーブルにデータを入力したものと考えてください。データを見る場合は次のようにします。rows)\psetコマンドを使って、このテーブルの表示を違うタイプに変更することができます。my_table;one,1two,2three,3four,4その他の方法として、短縮されたコマンドを使用してみます。four問い合わせの結果が適していれば、以下のように\crosstabviewコマンドを使用してクロス表形式で表示することができます。rows)この2つ目の例では、掛け算の表を、行は逆順にソートし、列はそれとは別に昇順に示しています。