Подумайте, это то состояние, которое мне нужно проверить.
select count(*) from nm.table1 where column1 =true;
Теперь его следует вывести из базы данных (PostgreSQL) и использовать IF THEN ELSE LOOP
в Unix
Что-то вроде
if [ $count > 1]
then
echo " Successful"
else
exit
fi
решение1
Далее предполагается, что пользователь unix, запускающий psql, имеет учетную запись postgresql, которая может получить доступ к 'nm.table1'. Если нет, вам также необходимо предоставить данные аутентификации для psql.
Лучший способ сделать это — иметь~/.pgpassфайл, содержащий данные аутентификации.
В любом случае, как только будет решена аутентификация, получение данных из psql
запросов станет таким же простым, как и получение данных из любой другой команды, стандартнозамена командыделает свою работу.
Для psql
мы хотим использовать опцию -t
или --tuples-only
для отключения печати верхних и нижних колонтитулов, а также опцию -A
или --no-align
для невыровненного режима печати (т. е. не печатать дополнительные пробелы для заполнения вывода). И, конечно, опцию -c
или --command
для указания psql
, что следующим аргументом будет команда SQL для выполнения.
count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')
if [ "$count" -gt "1" ] ; then
echo " Successful"
else
exit
fi