これは私が確認する必要がある条件です
select count(*) from nm.table1 where column1 =true;
これで、データベース(PostgreSQL)から取り出してIF THEN ELSE LOOP
Unixで使用できるようになります。
何かのようなもの
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
--command
psql
count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')
if [ "$count" -gt "1" ] ; then
echo " Successful"
else
exit
fi