考慮這是我需要檢查的條件
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
,我們希望使用-t
或--tuples-only
選項來停用列印頁首和頁腳,並使用-A
或--no-align
選項來實現未對齊列印模式(即不列印額外的空格來填充輸出)。當然,-c
or--command
選項告訴psql
我們下一個參數將是要執行的 SQL 指令。
count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')
if [ "$count" -gt "1" ] ; then
echo " Successful"
else
exit
fi