で作業しようとしていcurrent_setting()
ます。
私はこれを思いついた:
CREATE OR REPLACE FUNCTION process_audit() RETURNS TRIGGER AS $audit$
DECLARE
user_id integer;
BEGIN
BEGIN
user_id := current_setting('hws.current_user_id');
EXCEPTION WHEN OTHERS THEN
user_id := NULL;
END;
...
RETURN NULL;
END;
$audit$ LANGUAGE plpgsql;
設定は次の方法で設定されます。
SELECT set_config('hws.current_user_id', '5', true); -- true = local setting -> only visible in current transaction
問題は、current_setting()
値が有効でない場合に例外をスローすることです。EXCEPTION
例外ブロックは高価だと読んだので、使いたくありません。
例外を使用せずに設定に値があるかどうかを確認する方法はありますか?
ところで:私も読み込もうとしましpg_settings
たが、ローカル設定ではうまくいかないようです。