このエントリーをはてなブックマークに追加


PostgreSQLでヒアドキュメンとpsqlでSQLを実行する方法

シェルスクリプトにSQLを記述してPostgreSQLを操作したい事がありますよね。
本資料では、ヒアドキュメントを使用してSQLを実行してみたいと思います。

関連資料

ヒアドキュメントを使用したシェルスクリプトを作成し実行してみる

以下に記したシェルスクリプトを使用し実行してみます。

使用したシェルスクリプト

#!/bin/bash

psql <<_EOT
SELECT version();
CREATE DATABASE sakura;
\c sakura
CREATE TABLE tbl (a INT, b INT);
INSERT INTO tbl SELECT generate_series(1,100), generate_series(101,200);
 SELECT COUNT(*) FROM tbl;
SELECT AVG(a), AVG(b) FROM tbl;
DROP TABLE tbl;
_EOT

上記のシェルスクリプトはpsqlコマンドに対し、_EOTから_EOTまでの文字列(SQL)を流し込みます。
ヒアドキュメントに関しては、上記の関連資料のリンクを参照してください。

実行結果

上記のスクリプトを起動した出力結果です。
最後に作成したデータベースをドロップしています。

-bash-4.1$ chmod +x sql.sh
-bash-4.1$ ./sql.sh
                                                     version                                                      
------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit
(1 行)

CREATE DATABASE
データベース "sakura" に接続しました。.
CREATE TABLE
INSERT 0 100
 count 
-------
   100
(1 行)

         avg         |         avg          
---------------------+----------------------
 50.5000000000000000 | 150.5000000000000000
(1 行)

DROP TABLE
-bash-4.1$ dropdb sakura

添付ファイル: filesql.sh 681件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:08:00