データベースの条件を使用してシェルスクリプトを書く方法

データベースの条件を使用してシェルスクリプトを書く方法

これは私が確認する必要がある条件です

select count(*) from nm.table1 where column1 =true; 

これで、データベース(PostgreSQL)から取り出してIF THEN ELSE LOOPUnixで使用できるようになります。

何かのようなもの

if [ $count > 1]
then
  echo " Successful"
else
  exit
fi

答え1

以下では、psql を実行している Unix ユーザーが 'nm.table1' にアクセスできる postgresql アカウントを持っていることを前提としています。そうでない場合は、psql に認証の詳細も提供する必要があります。

それを実現する最良の方法は、〜/.pgpass認証の詳細を含むファイル。

とにかく、認証が整理されると、psqlクエリからデータを取得するのは、他のコマンドからデータを取得するのと同じくらい簡単です。標準コマンド置換仕事をします。

では、ヘッダーとフッターの印刷を無効にするにはまたはオプションを使用し、非整列印刷モード(つまり、出力を埋めるための余分なスペースを印刷しない)にはまたはオプションをpsql使用します。そしてもちろん、次の引数が実行する SQL コマンドであることを指示するにはまたはオプションを使用します。-t--tuples-only-A--no-align-c--commandpsql

count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')

if [ "$count" -gt "1" ] ; then
  echo " Successful"
else
  exit
fi 

関連情報