0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

python3 初めての、postgresql (psycopg2)

Last updated at Posted at 2019-08-07
insert-example.sql
NSERT INTO unicorn VALUES(4, 'VgBh54+pXLs9aduJ4+YQ97Ra43CnmCjuqSzLFmvir8c=', :request, 1);
INSERT INTO unicorn VALUES(4, 'VgBh54+pXLs9aduJ4+YQ97Ra43CnmCjuqSzLFmvir8c=', :request, 1);
select * FROM unicorn;

 id |                  requestid                   |             requestvalue              | hits 
----+----------------------------------------------+---------------------------------------+------
  4 | VgBh54+pXLs9aduJ4+YQ97Ra43CnmCjuqSzLFmvir8c= | dedb15ad-5b3c-55d1-15f3-6b0899b82828  |    1
(1 rows)

select last_value from unicorn_id_seq;
 last_value 
------------
          3
(1 row)

環境変数を入れえるとパスワードなしでInsertできる

 export PGPASS=pass

PythonでPostgreSQLを利用する

Python から PostgreSQL へ接続
↑テーブル削除、作成、レコード挿入、読み込みと一連の処理を確認することができます。

PostgreSQL Python: Connect To PostgreSQL Database Server
↑設定ファイルから変数を読み込みスマートにPostgreへ接続することができます。
pythonでのDB操作の一連を確認でき、かなりわかりやすかったです。
上記のチュートリアルを通じて、ストアドプロシージャというものを知りました。
PostgreSQLでストアドプロシージャを使用する
予め、DBにクエリテンプレートを作成しておき、クライアントとの通信回数を省略し、レスポンスを早めることができるわけですね。
postgresq;.PNG

初めて、PythonでSQL文を扱ってみましたが、これだけサンプルがあれば応用していきやすそうです。

Updateで更新されるtimestampを使う

Updateの際にトリガ-される関数を作成しておかなければならないようですね

PostgreSQLで更新日時を記録する「update_at」カラムを実現させる
PostgreSQLで更新時のtimestampをアップデートするには

db=> create function set_update_time() returns opaque as '
  begin
    new.<timestamp column>:= ''now'';
    return new;
  end;
' language 'plpgsql';

db=> create trigger update_tri<trigger_name> before update on <database_name>for each row                                                                                                                       
  execute procedure set_update_time();

DROP TRIGGER
DROP FUNCTION

参考

PostgreSQLシェルスクリプトでSQLに引数を渡して実行
【PostgreSQL】psqlにてパスワードを省略する方法

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?