Como escrever um Shell Script usando a condição de um banco de dados

Como escrever um Shell Script usando a condição de um banco de dados

Considere que esta é a condição que preciso verificar

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

Agora deve sair do banco de dados (PostgreSQL) e usar IF THEN ELSE LOOPno Unix

Algo como

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

Responder1

O seguinte assume que o usuário unix executando o psql possui uma conta postgresql que é capaz de acessar 'nm.table1'. Caso contrário, você também precisará fornecer detalhes de autenticação ao psql.

A melhor maneira de fazer isso é ter um~/.pgpassarquivo contendo os detalhes de autenticação.

De qualquer forma, uma vez resolvida a autenticação, obter dados de psqlconsultas é tão fácil quanto obter dados de qualquer outro comando, padrãosubstituição de comandofaz o trabalho.

Para psql, queremos usar a opção -tou --tuples-onlypara desabilitar a impressão de cabeçalhos e rodapés, e a opção -Aou --no-alignpara o modo de impressão desalinhado (ou seja, não imprimir espaços extras para preencher a saída). E, claro, a opção -cou --commandpara informar psqlque o próximo argumento será um comando SQL a ser executado.

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

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

informação relacionada