ShellでSQLを実行する方法(PostgresQL)

Shell-psql-sql postgreSQL

今日はShellでPostgresqlを接続し、SQL文を実行する方法を紹介します。
SQL実行エラーの処理を含めて、参照いただけますと幸いです。

ヒアドキュメントでpsqlを実行する方法①

#!/bin/bash
psql -U ユーザ名 -d データベース名 -h ホスト名 << EOF
  select count(1) from test;
EOF
exit $?

ShellでSQLファイルを実行する方法②

一つSQLファイルを実行する場合

#!/bin/bash
psql -U ユーザ名 -d データベース名 -h ホスト名 -f select.sql
exit $?
select.sqlの内容:
select count(1) from test;

複数SQLファイルを実行する場合

#!/bin/bash
psql -U ユーザ名 -d データベース名 -h ホスト名 -f select.sql
exit $?
select.sqlの内容:
\i select1.sql
\i select2.sql

パイプで実行SQLを渡してpsqlを実行する方法③

直接SQLの内容を渡す方法

#!/bin/bash
(
  echo -e “SELECT COUNT(*) FROM test;”
) | psql -U ユーザ名 -d データベース名 -h ホスト名
exit $?

変数を作成してから、実行する。

#!/bin/bash
sql=”select count(1) from test;”
echo “${sql}” | psql -U ユーザ名 -d データベース名 -h ホスト名
exit $?

直接にSQLを実行する方法④

#!/bin/bash
psql -U ユーザ名 -d データベース名 -h ホスト名 -c “select count(1) from test;”
exit $?
タイトルとURLをコピーしました