PostgreSQL/コマンドラインからSQLを実行する方法
の編集
Top
/
PostgreSQL
/
コマンドラインからSQLを実行する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * psqlコマンドを利用しコマンドラインからSQLを実行する方法 [#be043e00] シェルスクリプトなどからpsqlコマンドを介し、PostgreSQLにSQLを発行したいことはありませんか?~ このような場合、psqlの-cオプションにより実現することができます。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * テスト環境 [#o202ebe1] - Linux $ lsb_release -dr Description: CentOS release 5.7 (Final) Release: 5.7 - PostgreSQL $ postgres --version postgres (PostgreSQL) 8.4.7 *関連資料 [#x0ec8cbd] -[[psqlによる出力をタプルのみにする方法>PostgreSQL/psqlによる出力をタプルのみにする方法]] * psqlの''-c''オプション [#yed8b6b3] psqlコマンドに--helpオプションとして渡すと以下のメッセージが表示されます。~ ''-c''オプションは下記の通り、「(SQLまたは内部の)単一コマンドを一つだけ実行して終了」を実現します。 $ psql --help psql は PostgreSQL の会話型ターミナルです。 使用方法: psql [オプション]... [データベース名 [ユーザ名]] 一般的なオプション: -c, --command=コマンド (SQLまたは内部の)単一コマンドを一つだけ実行して終了 <省略> つまり、以下のようにすればコマンドラインからSQL文を実行することができます。 psql データベース名 各種接続オプション(ホスト名やユーザ名など) -c 実行したいSQL文 * 実施前のPostgreSQL環境構築 [#o0da697e] ''-c''オプションを試す前に、createdbコマンドによりfooデータベースを作成しました。 $ createdb foo * ''-c''オプションでcreate table [#d0c3595d] SQL文部分をシングルクオートで囲み実行(ダブルクオートでもOK)~ また、最後のセミコロンがなくても動作します。 - テーブルの作成 $ psql foo -c 'create table t1 (a int, b int);' CREATE TABLE - 作成したテーブルを確認 $ psql foo -c "select * from pg_tables where schemaname='public';" schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers ------------+-----------+------------+------------+------------+----------+------------- public | t1 | sakura | | f | f | f (1 行) * ''-c''オプションでINSERT [#cfa9e1e4] INSERT文を試してみます。 $ psql foo -c "insert into t1(a, b) values(1,1),(2,2);" INSERT 0 2 * ''-c''オプションでSELECT [#pb13b930] SELECT文を試してみます。 $ psql foo -c "select * from t1;" a | b ---+--- 1 | 1 2 | 2 (2 行) 以上のように psql の ''-c'' オプションによりコマンドラインからSQLを実行することができます。 #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * psqlコマンドを利用しコマンドラインからSQLを実行する方法 [#be043e00] シェルスクリプトなどからpsqlコマンドを介し、PostgreSQLにSQLを発行したいことはありませんか?~ このような場合、psqlの-cオプションにより実現することができます。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * テスト環境 [#o202ebe1] - Linux $ lsb_release -dr Description: CentOS release 5.7 (Final) Release: 5.7 - PostgreSQL $ postgres --version postgres (PostgreSQL) 8.4.7 *関連資料 [#x0ec8cbd] -[[psqlによる出力をタプルのみにする方法>PostgreSQL/psqlによる出力をタプルのみにする方法]] * psqlの''-c''オプション [#yed8b6b3] psqlコマンドに--helpオプションとして渡すと以下のメッセージが表示されます。~ ''-c''オプションは下記の通り、「(SQLまたは内部の)単一コマンドを一つだけ実行して終了」を実現します。 $ psql --help psql は PostgreSQL の会話型ターミナルです。 使用方法: psql [オプション]... [データベース名 [ユーザ名]] 一般的なオプション: -c, --command=コマンド (SQLまたは内部の)単一コマンドを一つだけ実行して終了 <省略> つまり、以下のようにすればコマンドラインからSQL文を実行することができます。 psql データベース名 各種接続オプション(ホスト名やユーザ名など) -c 実行したいSQL文 * 実施前のPostgreSQL環境構築 [#o0da697e] ''-c''オプションを試す前に、createdbコマンドによりfooデータベースを作成しました。 $ createdb foo * ''-c''オプションでcreate table [#d0c3595d] SQL文部分をシングルクオートで囲み実行(ダブルクオートでもOK)~ また、最後のセミコロンがなくても動作します。 - テーブルの作成 $ psql foo -c 'create table t1 (a int, b int);' CREATE TABLE - 作成したテーブルを確認 $ psql foo -c "select * from pg_tables where schemaname='public';" schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers ------------+-----------+------------+------------+------------+----------+------------- public | t1 | sakura | | f | f | f (1 行) * ''-c''オプションでINSERT [#cfa9e1e4] INSERT文を試してみます。 $ psql foo -c "insert into t1(a, b) values(1,1),(2,2);" INSERT 0 2 * ''-c''オプションでSELECT [#pb13b930] SELECT文を試してみます。 $ psql foo -c "select * from t1;" a | b ---+--- 1 | 1 2 | 2 (2 行) 以上のように psql の ''-c'' オプションによりコマンドラインからSQLを実行することができます。 #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する