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にクエリテンプレートを作成しておき、クライアントとの通信回数を省略し、レスポンスを早めることができるわけですね。
初めて、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();
参考
PostgreSQLシェルスクリプトでSQLに引数を渡して実行
【PostgreSQL】psqlにてパスワードを省略する方法