vsql のプロンプト表示を変更する方法をご紹介します。
プロンプトに任意の文字列、OS コマンドの実行結果、時刻等を表示することにより、vsql での作業効率を向上させることができます。

プロンプトの種類

vsql に用意されているプロンプトには以下の種類があります。

PROMPT1新規コマンド行(1行目)で使用されるプロンプト表示
PROMPT2コマンドが複数行にわたる場合の2行目以降で使用されるプロンプト表示
PROMPT3COPYコマンドのデータ読み込み元に標準入力(stdin)を指定した際に使用されるプロンプト表示


プロンプトの設定方法とパラメータ

現在の設定の確認

現在のプロンプトの設定を確認するには vsql 上で \set コマンドを使用します。


設定方法

プロンプトの設定は \set コマンドを使用して行います。
\set プロンプト番号 ‘パラメータ’

[変更例]


パラメータ

プロンプトに指定できる主なパラメータは以下の通りです。
パラメータ説明備考
%Mホスト名(ドメイン名含む)以下のいずれかの場合のみ有効
・vsql 起動時に「-h」オプションを使用している
・環境変数「VSQL_HOST」を設定している
%mホスト名(ドメイン名を含まない)以下のいずれかの場合のみ有効
・vsql 起動時に「-h」オプションを使用している
・環境変数「VSQL_HOST」を設定している
%> 接続ポート番号
%n接続ユーザ名
%/カレントデータベース名vsql 起動時に「-d」オプションを使用している場合のみ有効
%~~
デフォルトのデータベースに接続している場合
カレントデータベース名デフォルト以外のデータベースに接続している場合
%#>
%R=[PROMPT1に指定]通常時
^[PROMPT1に指定]シングルラインモードの場合
![PROMPT1に指定]データベースへの接続に失敗した場合
-[PROMPT2に指定]
(なし)[PROMPT3に指定]
%:name:vsql の変数 name に設定された値(*1)
%`command`OSコマンドの実行結果

(*1) vsql の変数を設定する方法については、vsqlで変数を使う方法 を参考にしてください。

使用例

プロンプト1にユーザ名を表示する

現在 Vertica に接続しているユーザ名「kkauser」をプロンプトに表示します。


プロンプト1に現在時刻を表示する

OS コマンドの実行結果を利用して、現在時刻(時分秒)をプロンプトに表示します。


他にも複数のパラメータを組み合わせて、任意の表示をさせることが可能です。
複数ターミナルで vsql を起動した際にユーザ名をプロンプトに表示し間違えを防いだり、作業時のコマンド実行時刻を残しておきたい場合など、様々な場面において活用することができます。

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。