uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

[psql]とかPstgreSqlについて

2018-07-22 17:17:27 | work

時々触るのでコマンドメモ

■圧縮したBKテーブルの作成(そのあとにテーブルコメントを入れる)
CREATE TABLE WITH (appendonly=true, compresstype=quicklz) AS select * from ;
COMMENT ON TABLE IS 'コメント';

■psqlコマンド(copy)

https://www.postgresql.jp/document/9.3/html/app-psql.html#APP-PSQL-META-COMMANDS-COPY
psql
www.postgresql.jp
-a--echo-all. 読み込んだ全ての行を標準出力に表示します。 これは対話式モードよりもスクリプト処理の際に有用です。

コマンド例(powershellでやった)
①pgAdminのインストールフォルダに移動
 C:\Program Files (x86)\pgAdmin III\1.16 ※環境により違う。psql.exeがある場所
②コピー元DBにログインしコピー
(CSVアウトプットのパス指定をしないとPCのユーザー設定によってはPermission deniedが出る)
 .\psql --host=<hostname> --dbname=<dbname> --username=<username> --password
 \copy (select * from ) to 'c:\hoge\hoge.csv' with csv;
③コピー先DBにログインしCSVを復元
 .\psql --host=<hostname> --dbname=<dbname> --username=<username> --password
 \copy (col1,col2,・・・) from 'c:\hoge\hoge.csv' with csv


※カラム指定は省略可能→ (col1,col2,・・・)

■psqlコマンドその2(SQLファイル実行)

# psql -d {データベース名} -U {ユーザ名} -f {ファイル名}
psql -d command_test -U commander -f test.sql

\copyコマンドではSQLファイルの指定はできない。
間違えやすいので注意。