psqlコマンドを利用しコマンドラインからSQLを実行する方法

シェルスクリプトなどからpsqlコマンドを介し、PostgreSQLにSQLを発行したいことはありませんか?
このような場合、psqlの-cオプションにより実現することができます。


スポンサーリンク

テスト環境

関連資料

psqlの-cオプション

psqlコマンドに--helpオプションとして渡すと以下のメッセージが表示されます。
-cオプションは下記の通り、「(SQLまたは内部の)単一コマンドを一つだけ実行して終了」を実現します。

$ psql --help
psql は PostgreSQL の会話型ターミナルです。

使用方法:
  psql [オプション]... [データベース名 [ユーザ名]]

一般的なオプション:
  -c, --command=コマンド   (SQLまたは内部の)単一コマンドを一つだけ実行して終了
<省略>

つまり、以下のようにすればコマンドラインからSQL文を実行することができます。

psql データベース名 各種接続オプション(ホスト名やユーザ名など) -c 実行したいSQL文

実施前のPostgreSQL環境構築

-cオプションを試す前に、createdbコマンドによりfooデータベースを作成しました。

$ createdb foo

-cオプションでcreate table

SQL文部分をシングルクオートで囲み実行(ダブルクオートでもOK)
また、最後のセミコロンがなくても動作します。

-cオプションでINSERT

INSERT文を試してみます。

$ psql foo -c "insert into t1(a, b) values(1,1),(2,2);"
INSERT 0 2

-cオプションでSELECT

SELECT文を試してみます。

$ psql foo -c "select * from t1;"
 a | b 
---+---
 1 | 1
 2 | 2
(2 行)

以上のように psql の -c オプションによりコマンドラインからSQLを実行することができます。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 12:53:39