You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PGSQL JDBC中setClientInfo信息的存储位置及查询访问方法咨询

在PostgreSQL触发器中访问JDBC setClientInfo设置的信息

可以直接在触发器、数据库函数或其他数据库端查询中访问setClientInfo设置的信息,具体分两种场景:

标准属性(如application_name)

对于JDBC规范定义的标准属性(例如application_name),驱动会直接将其映射到PostgreSQL对应的会话参数。你可以通过current_setting()函数直接读取:

SELECT current_setting('application_name');

在触发器逻辑中调用该函数即可获取对应值。

自定义属性

对于你自行定义的非标准client info属性,JDBC驱动会自动将其存储为前缀为jdbc.client.info.的会话参数。比如你在应用中执行:

connection.setClientInfo("user_id", "1001");

对应的数据库会话参数就是jdbc.client.info.user_id,在触发器或查询中可以这样获取:

SELECT current_setting('jdbc.client.info.user_id');

如果担心目标属性不存在导致报错,可以添加第二个参数返回默认值(不存在时返回NULL):

SELECT current_setting('jdbc.client.info.user_id', true);

验证方法

在应用设置完client info后,可直接在数据库端执行以下查询,查看所有相关的会话参数:

SELECT name, setting FROM pg_settings WHERE name LIKE 'jdbc.client.info.%' OR name = 'application_name';

内容的提问来源于stack exchange,提问作者Brandon Childers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:10:26