이것이 내가 확인해야 할 조건이라고 생각하십시오
select count(*) from nm.table1 where column1 =true;
이제 db(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 명령임을 알려주는 or 옵션도 있습니다.-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