PostgreSQL/ファイル内のSQLと実行結果を一緒に出力する方法
の編集
Top
/
PostgreSQL
/
ファイル内のSQLと実行結果を一緒に出力する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLでファイル内のSQLと実行結果を一緒に出力する方法 [#c49e63e3] アプリケーション作成時のテスト工程などでテスト用のSQLファイルを実行した場合、psqlを使うと結果のみが出力されます。~ psqlの-aオプションを使用することにより、ファイル内のSQLと実行結果を一緒に出力することができます。~ 以下にpsqlの''-a''オプションを使用した例を記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 使用した環境 [#d0f6c2fe] - Linux $ lsb_release -dr Description: CentOS release 6.3 (Final) Release: 6.3 - PostgreSQL $ postgres --version postgres (PostgreSQL) 8.4.13 * psqlで-aオプションの有無を試してみる [#ved22343] 以下にpsqlコマンドの-aオプションを未使用の場合と使用した場合の結果を記します。~ 実行するにあたり、以下のように端末からデータベースを作成しました。 createdb testdb また使用したSQLファイルは以下の通りです。 #ref(test.sql) drop table if exists tbl1; create table tbl1 ( col1 serial, col2 varchar ); insert into tbl1 (col2) values ('sakura'), ('tsubaki'), ('ajisai'); select * from tbl1; * psqlの-aオプションなしで実行してみる [#g8a2f1fd] psqlの-aオプションなしで実行した結果です。~ test.sqlに記述されているSQLが実行され実行結果のみ表示されています。 $ createdb testdb $ psql -f test.sql testdb psql:test.sql:1: NOTICE: テーブル"tbl1"は存在しません。省略します DROP TABLE psql:test.sql:6: NOTICE: CREATE TABLEはシリアル列"tbl1.col1"用に暗黙的なシーケ ンス"tbl1_col1_seq"を作成します。 CREATE TABLE INSERT 0 3 col1 | col2 ------+--------- 1 | sakura 2 | tsubaki 3 | ajisai (3 行) * psqlの-aオプションありで実行してみる [#k71d99f0] psqlの-aオプションありで実行した結果です。~ test.sqlに記述されているSQLと実行結果の両方が表示されています。 $ psql -a -f test.sql testdb drop table if exists tbl1; DROP TABLE create table tbl1 ( col1 serial, col2 varchar ); psql:test.sql:6: NOTICE: CREATE TABLEはシリアル列"tbl1.col1"用に暗黙的なシーケ ンス"tbl1_col1_seq"を作成します。 CREATE TABLE insert into tbl1 (col2) values ('sakura'), ('tsubaki'), ('ajisai'); INSERT 0 3 select * from tbl1; col1 | col2 ------+--------- 1 | sakura 2 | tsubaki 3 | ajisai (3 行) * psqlの入出力オプション [#d7893a70] 参考までにpsqlの入出力オプションは以下のようなものがあります。~ $ psql --help <snip> 入出力オプション: -a, --echo-all スクリプトからのすべての入力を表示 -e, --echo-queries サーバへ送信したコマンドを表示 -E, --echo-hidden 内部コマンドが生成したクエリーを表示 -L, --log-file=ファイル名 セッションログをファイルに吐き出す -n, --no-readline 拡張コマンドライン編集機能(readline)を無効にする -o, --output=ファイル名 クエリーの結果をファイル(または |パイプ)に送る -q, --quiet 静かに実行(メッセージなしで、クエリー出力のみ) -s, --single-step シングルステップモード(各クエリーごとに確認) -S, --single-line 単一行モード(行末を SQL コマンドの終了とみなす) #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLでファイル内のSQLと実行結果を一緒に出力する方法 [#c49e63e3] アプリケーション作成時のテスト工程などでテスト用のSQLファイルを実行した場合、psqlを使うと結果のみが出力されます。~ psqlの-aオプションを使用することにより、ファイル内のSQLと実行結果を一緒に出力することができます。~ 以下にpsqlの''-a''オプションを使用した例を記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 使用した環境 [#d0f6c2fe] - Linux $ lsb_release -dr Description: CentOS release 6.3 (Final) Release: 6.3 - PostgreSQL $ postgres --version postgres (PostgreSQL) 8.4.13 * psqlで-aオプションの有無を試してみる [#ved22343] 以下にpsqlコマンドの-aオプションを未使用の場合と使用した場合の結果を記します。~ 実行するにあたり、以下のように端末からデータベースを作成しました。 createdb testdb また使用したSQLファイルは以下の通りです。 #ref(test.sql) drop table if exists tbl1; create table tbl1 ( col1 serial, col2 varchar ); insert into tbl1 (col2) values ('sakura'), ('tsubaki'), ('ajisai'); select * from tbl1; * psqlの-aオプションなしで実行してみる [#g8a2f1fd] psqlの-aオプションなしで実行した結果です。~ test.sqlに記述されているSQLが実行され実行結果のみ表示されています。 $ createdb testdb $ psql -f test.sql testdb psql:test.sql:1: NOTICE: テーブル"tbl1"は存在しません。省略します DROP TABLE psql:test.sql:6: NOTICE: CREATE TABLEはシリアル列"tbl1.col1"用に暗黙的なシーケ ンス"tbl1_col1_seq"を作成します。 CREATE TABLE INSERT 0 3 col1 | col2 ------+--------- 1 | sakura 2 | tsubaki 3 | ajisai (3 行) * psqlの-aオプションありで実行してみる [#k71d99f0] psqlの-aオプションありで実行した結果です。~ test.sqlに記述されているSQLと実行結果の両方が表示されています。 $ psql -a -f test.sql testdb drop table if exists tbl1; DROP TABLE create table tbl1 ( col1 serial, col2 varchar ); psql:test.sql:6: NOTICE: CREATE TABLEはシリアル列"tbl1.col1"用に暗黙的なシーケ ンス"tbl1_col1_seq"を作成します。 CREATE TABLE insert into tbl1 (col2) values ('sakura'), ('tsubaki'), ('ajisai'); INSERT 0 3 select * from tbl1; col1 | col2 ------+--------- 1 | sakura 2 | tsubaki 3 | ajisai (3 行) * psqlの入出力オプション [#d7893a70] 参考までにpsqlの入出力オプションは以下のようなものがあります。~ $ psql --help <snip> 入出力オプション: -a, --echo-all スクリプトからのすべての入力を表示 -e, --echo-queries サーバへ送信したコマンドを表示 -E, --echo-hidden 内部コマンドが生成したクエリーを表示 -L, --log-file=ファイル名 セッションログをファイルに吐き出す -n, --no-readline 拡張コマンドライン編集機能(readline)を無効にする -o, --output=ファイル名 クエリーの結果をファイル(または |パイプ)に送る -q, --quiet 静かに実行(メッセージなしで、クエリー出力のみ) -s, --single-step シングルステップモード(各クエリーごとに確認) -S, --single-line 単一行モード(行末を SQL コマンドの終了とみなす) #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する
添付ファイル:
test.sql
962件
[
詳細
]