psqlからPreparedStatementを実行する

PreparedStatementを実行した際の監査ログを確認したく、試したメモ。パラメータ化されたクエリと、PreparedStatementは一緒ではないっぽいので注意。

参考リンク

準備

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=>