PostgreSQLでSQLをファイルから読み込む方法
PostgreSQLでSQLをファイルから読み込む方法を紹介します。
1.問題点
下記のようなSQLを用意しました。
select * from hoge_20220520;
select * from hoge_20220519;
:
select * from hoge_20220101;
手で投入するのは時間がかかるため、SQLをファイルに設定して、そのファイルを読み込ませたいのですが、方法が分かりません。
ということで、PostgreSQLでSQLをファイルから読み込む方法を紹介します。
2.PostgreSQLでSQLをファイルから読み込む
PostgreSQLでSQLをファイルから読み込むには、psqlのメタコマンド"\i"または"\include"で実現可能です。
具体的には下記の手順で実施します。
まず、1項のSQLをtest.sqlに設定します。
作成したtest.sqlを、SQLを実行させたいユーザーがアクセス可能なディレクトリに配置します。
たとえばpostgresユーザーでSQLを読み込ませる場合、ファイルを/var/lib/pgsqlに配置します。/rootに配置するとpostgresユーザーでは読み込めないので注意してください。
準備ができたら下記の手順でSQLファイルを読み込ませます(postgresユーザーでの実施手順で示します)。
# su - postgres
$ psql -U <ユーザ名> -d <データベース名>
$ postgres=> \i test.sql
または
$ postgres=> \include test.sql
なお、SQLの経過情報はデフォルトでは表示されません。読み取った行を画面に表示させる場合は、下記のようにECHO変数をallに設定する必要があります。
$ psql -a -U <ユーザ名> -d <データベース名>
または
$ psql --echo-all -U <ユーザ名> -d <データベース名>
lessで検索文字列だけを表示する方法
lessで検索文字列だけを表示する方法を紹介します。
例えば、大量に表示されるログの中から特定の文字列を含む行だけを確認したい場合に威力を発揮します。
1.はじめに
lessはファイルの内容を表示するコマンドです。
ファイルを開いたあと、スラッシュ+検索文字列で特定の文字列を検索することはできます。
"Failed"で検索した例
が、検索した文字列の行だけを表示する方法が分かりません。
ということで、lessで検索文字列だけを表示する方法を紹介します。
2.lessで検索文字列だけを表示する
lessで検索文字列だけを表示するには、次の手順を実施します。
まず"less ファイル名"でファイルの中身を表示します。
次に、"&"を入力します。一番下に"&/"が表示されます。
検索文字列(ここではFailed)を入力してリターンを押下します。
これで検索文字列にマッチした行のみが表示されます。
3.lessでログを表示しながら指定した文字列以外を検索する
2項の"&"の代わりに"&!"を入力します。一番下に"Non-match &/"が表示されます。
検索したくない文字列を入力してリターンを押下します。
これで文字列にマッチしない行のみ表示します。
4.追加されたデータを表示する
tail -fのように追加されたデータを表示するには、2項または3項の設定を行った後、"Shift+f"を入力します。
5.検索の解除
&または&!の解除は、"&"を入力してリターンします。
4項を実施している場合は、Ctrl-cで追加データ表示を停止して、そのあとに"&"を入力してリターンしてください。
iPhoneの文字変換で変換候補を表示する裏ワザ
iPhoneの文字変換で変換候補を表示する裏ワザを紹介します。
1.はじめに
iPhoneの文字変換で変換候補を表示する場合、右側のアイコンをタップしていると思います。
実は変換候補を表示するもうひとつの方法があります。
労力はこれと大して変わりませんが、知っているとちょっと自慢できるかもしれません。
2.変換候補を表示する
まず任意の文字を入力して変換候補を表示します。
変換候補の任意の部分を長押しします。
長押した状態で、そのまま下にスライドすると変換候補が表示されます。
あとはこれまでと同様、スクロールで変換候補を探します。