概要
psqlのコマンド備忘録です。
接続
psql -h localhost -U postgres -d doppo1 -p 5432
※-h host
※-U user
※-d database
※-p port番号
※環境変数PGPASSWORDを設定するとパスワード値が渡される
linux bash) export PGPASSWORD=postgres
windows cmd) set PGPASSWORD=postgres
windows powershell) $env:PGPASSWORD= "postgres"
認証
pg_hba.confで認証方式を設定をする。
- md5 md5パスワード認証
- trust 認証不要
設定の重複行があってもエラーにならないので注意。
pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all all trust # psql -U postgres がパスワード不要で接続可
host all all 127.0.0.1/32 trust # psql -U postgres -l localhost がパスワード不要で接続可
接続データベース変更
\c doppo1
quit
\q
出力結果をファイル出力(起動オプション指定)
psql -o output.txt
出力結果をファイルに出力(psql内で指定)
\o output.txt
テーブルやビュー、シーケンス等の一覧
¥d
テーブル一覧
¥dt
テーブル定義確認
¥d tbl1
ヘルプ
\?
変数に数字セット
\set int1 1
postgres=# select :int1 int1;
int1
------
1
変数に文字セット
\set str1 abc
postgres=# select :'str1' str1;
str1
------
abc
変数に空白含む文字セット
\set sql1 'select count(*) from pg_database;'
postgres=# :sql1
count
-------
4
select結果を変数にセット
select 'abc' str1;
\gset
postgres=# \echo :str1
abc
テーブルのエクスポート
COPY tbl1 to 'D:\temp\tbl1.tsv';
※ファイルパスに日本語不可
パラメータ確認
select current_setting('log_min_duration_statement');
パラメータ変更
select set_config('log_min_duration_statement', '100', 'false');
※第三引数をfalseにするとグローバルで設定される。trueだとローカル
パラメータリロード
select pg_reload_conf();