如何使用数据库中的条件编写 Shell 脚本

如何使用数据库中的条件编写 Shell 脚本

考虑这是我需要检查的条件

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选项来实现未对齐打印模式(即不打印额外的空格来填充输出)。当然,-cor--command选项告诉psql我们下一个参数将是要执行的 SQL 命令。

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

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

相关内容