PreparedStatementを実行した際の監査ログを確認したく、試したメモ。パラメータ化されたクエリと、PreparedStatementは一緒ではないっぽいので注意。
参考リンク
- https://www.postgresql.org/docs/12/sql-prepare.html
- PostgreSQL/PREPAREでPreparedStatementsを作成する
- 誰でも分かる!PostgreSQLでDB構築!
- PostgreSQLの基本的なコマンド
準備
PostgreSQLに接続する。
DBをリストする。
\l
DBを作成する。
CREATE DATABASE kenko;
DBに接続する。
\c kenko
テーブルをリストする。
\d
テーブルを作成する。
CREATE TABLE kenko_record( id char(4) not null, name text not null, food text not null, PRIMARY KEY(id) );
データを投入する。
INSERT INTO kenko_record(id,name,food) VALUES (1,'hoge','おにぎり'); INSERT INTO kenko_record(id,name,food) VALUES (2,'fuga','サンドイッチ'); INSERT INTO kenko_record(id,name,food) VALUES (3,'piyo','ラーメン');
データをセレクトする。
kenko=> select * from kenko_record; id | name | food ------+------+-------------- 1 | hoge | おにぎり 2 | fuga | サンドイッチ 3 | piyo | ラーメン (3 rows) kenko=>
PreparedStatement
Prepareする。
PREPARE test (char) as select * from kenko_record where id = $1;
実行する。
kenko=> EXECUTE test('1'); id | name | food ------+------+---------- 1 | hoge | おにぎり (1 row) kenko=>