PostgreSQL

【トラブル】PostgreSQLに関するトラブル ~ その3 ~

■ はじめに https://dk521123.hatenablog.com/entry/2015/04/07/001057 https://dk521123.hatenablog.com/entry/2015/04/27/000100 の続き。 目次 【1】エラー「cannot XXXXX in a read-only transaction」が表示 【1】エラー「cannot XXXXX in a read-onl…

【PostgreSQL】特殊文字を扱う

■ はじめに PostgreSQLで、Unicode を扱ったので、メモ。 目次 【1】Unicode を扱う 【1】Unicode を扱う U&’文字列’ を使用する => そのままだと文字列として扱われてしまう サンプル -- \xxxx - 16進数 4桁の Unicode 文字コード番号 -- \+xxxxxx - 16進…

【PostgreSQL】COPY コマンド ~ COPY FROM / TO ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/08/001155 https://dk521123.hatenablog.com/entry/2020/05/08/175525 などで少し触れた PostgreSQL の COPY コマンド だが Redshift でも使えるみたいなので、まとめる AWS公式サイト:COPY コマ…

【PostgreSQL】順番を指定したテーブルの項目追加

■ はじめに https://dk521123.hatenablog.com/entry/2016/06/16/220624 の「使用上の注意」で触れたが、順番を指定した項目追加において MySQLの場合、AFTER xxxx があるので楽なのだが、 PostgreSQLの場合、項目を追加する際に、 ALTER TABLE ADD COLUMN だ…

【PostgreSQL】データ比較SQL文 を考える

■ はじめに データを移行ツールを作成した時に、 移行ツールと元のデータに差異がないことを PostgreSQLにおいて、簡単に確認できるSQL文を考える ■ 解決案 http://www.ajisaba.net/db/postgresql/table_record_diff.html#UNION https://qiita.com/damassima…

【Python】CSVデータをPostgreSQLにインポートする ~ execute_values() 編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/05/08/175525 の続き。 今回は、「実装案2:オーソドックスにInsertする」を行う。 ■ 実行メソッドについて 実行メソッドの候補として、以下がある。 1)executemany() ← パフォーマンスがいまいち…

【Python】CSVデータをPostgreSQLにインポートする ~ copy_from() 編 ~

■ はじめに Pythonコードにより、CSVファイルを入力データとして、 PostgreSQLに対してデータをInsertする なお、PostgreSQLライブラリについては、 以下の関連記事の「psycopg2」を使う Python で PostgreSQL を使う ~ psycopg2編 ~ https://dk521123.hat…

【Python】Python で PostgreSQL を使う ~ psycopg2編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/11/27/000316 の続き。 以下の関連記事で ローカル環境に Postgre の SSL設定をしたのだが SSL接続する際に、psycopg2を使ったのでメモ。 https://dk521123.hatenablog.com/entry/2020/05/05/221239 …

【PostgreSQL】PostgreSQL の SSL通信に関する あれこれ

■ はじめに PostgreSQL の SSL通信に関して調べてみた 目次 【1】 SSL確認方法 【2】 SSL設定手順 【3】 SSL 攻撃 と SSLモード 【1】 SSL確認方法 その1) psql ログイン時 その2) sslinfo を有効にして「select ssl_is_used()」を実行する その3)…

【PostgreSQL】psqlでパスワードを省略する

■ はじめに 意外とpsqlでパスワードを省略することが多く、 AWS CodeBuildでも使用しそうなので、メモしておく ■ Linux 方法は2つ。 【1】~/.pgpassに入れる方法 【2】環境変数「PGPASSWORD」に入れる方法 【1】~/.pgpassに入れる方法 1-1)「~/.pgpa…

【PostgreSQL】psql で CSV出力する

■ はじめに PostgreSQLへの更新処理に関する単体試験のエビデンスとして、 CSV出力したいなっと思って調べてみたことをメモ。 目次 案1:COPYコマンドを利用する 案2:-cオプション + SELECT文 を利用する 番外編:DBクライアントソフトを使う ■ 案1:COP…

【PostgreSQL】psql で 変数 / 定数を使う

■ はじめに 例えば、開発などでマスターデータをDELETE&INSERTするのに IDやコードを変数に置き換えて管理したい場合がある。 ==== delete from sample_table where code = 【コード】; -- 同じ値じゃないとダメ insert into sample_table (code, name) VALU…

【PostgreSQL】よく使う pdqlコマンド

■ はじめに https://dk521123.hatenablog.com/entry/2014/09/11/002003 で扱った pdqlコマンドについて、よく使うのをまとめておく。 自分用のメモ。 ■ 環境確認 インストールされているのか? # version表示で確認する psql --version インストールされてい…

【Python】Python で PostgreSQL を使う ~ PyGreSQL編 ~

■ はじめに PyGreSQL を使って、PostgreSQL にアクセスする。 別の方法については、以下の関連記事を参照のこと。 Python で PostgreSQL を使う ~ psycopg2編 ~ https://dk521123.hatenablog.com/entry/2020/05/06/141029 ■ 環境設定 環境 * OS : Windows1…

【シェル】【PostgreSQL】PostgreSQLのDBをエクスポート/インポートするスクリプト

■ はじめに pg_dumpall or pg_dump / pg_restore を使う。 pg_dumpall / pg_dump / pg_restore については、以下の関連記事を参照のこと。 ■ 実行環境 * OS : Debian8 * DB : PostgreSQL v9.4.15 詳しい設定については、以下の関連記事を参照のこと。 ■ バッ…

【Ant】【PostgreSQL】 Ant で、DB を 初期化する ~ PostgreSQL編 ~

■ 初めに http://blogs.yahoo.co.jp/dk521123/34993017.html を使えば、DB を 初期化できるかと思ったが、 DROP DATABASEを行った際に、 エラー「cannot drop the currently open database」等が表示されるが出たので、 別のアプローチを行って実現する ■ 実…

【トラブル】PostgreSQLに関するトラブル ~ その2 ~

■ はじめに https://dk521123.hatenablog.com/entry/2015/04/07/001057 の続き。 目次 【1】Fail「Permission should be u=rwx(0700)」が表示される 【2】「Peer authentication failed for user "XXX"」が表示される 【3】「cannot drop the currently o…

【PostgreSQL】データのバックアップ・リストア ~ pg_dump / pg_restore ~

■ はじめに * バックアップ/リストアについて、困ったら、以下の公式を読みといいかも。 https://www.postgresql.jp/document/9.4/html/backup.html * また、注意事項も含めて、以下を一読しておくといいかも。 http://www.atmarkit.co.jp/ait/articles/0810…

【Linux】【PostgreSQL】 ホストOSの pgAdmin III からゲストOS / Debian のPostgreSQLにアクセスできるようにする

ホストOSの pgAdmin III からゲストOSのPostgreSQLにアクセスできるようにする 前提条件 * 以下の関連記事にある設定を行っている事 http://blogs.yahoo.co.jp/dk521123/33895644.html ■ ゲストOS / PostgreSQL側の設定 1) ホストOSとゲストOSのIPアドレスを…

【トラブル】PostgreSQLに関するトラブル ~ その1 ~

■ はじめに PostgreSQL に関するトラブルシューティングを纏める。 目次 【1】(could not connect to socket with error code 10061)で繋がらない 【2】「【DB名】 is being accessed by other users」が表示される 【3】「Fatal: unrecognized configura…

【Linux】【PostgreSQL】pgAdmin3 を Debian で設定するには

手順 [1] 以下のコマンドで、pgadmin3 をインストールする apt-get install pgadmin3 起動方法 [1] [アプリケーション]-[プログラミング]-[pgAdminIII]を選択 [2] [ファイル]-[サーバの追加]で接続情報を入力し、DBに接続する 参考文献 http://d.hatena.ne.j…

【PostgreSQL】ファイルからSQL文を一括で実行するには ~pdqlコマンドの利用~

■ はじめに * 開発環境設定やテストデータ作成の際に いちいち作ったりするのが面倒なので、 ファイルにして残しておけば、自分だけじゃなく 別の開発メンバーにも役立つので ファイルからSQL文を一括で実行する方法を調べてみた。 補足:pdql コマンド 以下…

【PostgreSQL】【ストアド】INSERT / UPDATEを行い、それ以外のレコードはDELETEをする

初めに http://blogs.yahoo.co.jp/dk521123/33945911.html で、INSERT / UPDATEを行う事はできたが、それ以外のデータはゴミになるので削除したい。 以下に同じような悩みの方がいたが、他の方法を考えてみた。(結局はヒントになったけど) http://blogs.yaho…

【PostgreSQL】【ストアド】 UPDATE or INSERT を行うストアドの作成

初めに * 「UPDATEしてレコードがなかったら、INSERTをする」ストアドを作成する 準備 テーブル「person」 * デフォルトにあるテーブルだけど CREATE TABLE person ( id character(8) NOT NULL, name character varying(100), sex character(1), updatedate …

【Linux】【PostgreSQL】 PostgreSQL のインストールおよび設定 ~ Debian編 ~

■ はじめに 以下の関連記事でWindowsでPostgreSQLの設定を行った。今回は、Debian版。 Windowsでの設定 http://blogs.yahoo.co.jp/dk521123/33153278.html ■ 構築環境 * ホストOS : Windows 8 * ゲストOS : Debian7 * 仮想化ソフト : VMware(R) Player 6.0.3…

【PostgreSQL】【設定】PostgreSQL のポート番号を変更する

手順 [1] 「【自分のインストールしたパス】\PostgreSQL\9.3\data」配下にある「postgresql.conf」をエディタで開く [2] 「port = 【変更したいポート番号】」を修正し、PostgreSQL を再起動する postgresql.conf * 「★ここを修正★」の行を修正する # ・・・…

【PostgreSQL】ユーザ定義型

ユーザ定義型の定義 サンプル CREATE TYPE PersonEntity AS (id char(8), name varchar(100), sex char(1)); DROP TYPE PersonEntity; ユーザ定義型の削除 サンプル DROP TYPE PersonEntity; 関連記事 ストアドファンクション http://blogs.yahoo.co.jp/dk52…

【PostgreSQL】【ストアド】 ストアドファンクション

手順 [1] pgAdmin IIIを起動する [2] [SQL]アイコン(任意のSQLクエリーを実行する)を選択する [3] [SQLエディタ]タブ内にストアドプロシージャを入力 [4] 三角アイコン(クエリーの実行)を選択する 構文 CREATE [OR REPLACE] FUNCTION 【関数名】(【引数】…

【PostgreSQL】 トランザクション

SQLコマンド 1) BEGIN : トランザクションブロックを開始する http://www.postgresql.jp/document/9.3/html/sql-begin.html 2) COMMIT : 現在のトランザクションをコミットする http://www.postgresql.jp/document/9.3/html/sql-commit.html 3) ROLLBACK : …

【Windows】【PostgreSQL】 PostgreSQL のインストールおよび設定 ~ Windows編 ~

■ はじめに * PostgreSQL を設定する ⇒ 思った以上に簡単にできる。これが無料だからすごい。 * Linuxでの設定について 以下の関連記事を参照のこと。 ■ ダウンロード先 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads #■ インスト…