微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

delphi – 在Postgres中识别连接ID

我有一个Postgres数据库(9),我正在编写触发器.我希望触发器设置修改时间和记录的用户ID.在Firebird中,您有一个可以在触发器中使用的CONNECTIONID,因此您可以在连接到数据库时向表中添加值(这是一个桌面应用程序,因此连接在应用程序的生命周期内是持久的),类似于这个:
UserId | ConnectionId
---------------------
544    | 3775

然后在触发器中查找connectionid 3775属于用户ID 544并使用544作为修改记录的用户.

我可以在Postgres中使用类似的东西吗?

解决方法

你可以使用进程ID.它可以通过以下方式检索:
pg_backend_pid()

使用此pid,您还可以使用表pg_stat_activity获取有关当前后端的更多信息,但是您已经应该知道所有内容,因为您正在使用此后端.

或更好.只需创建一个序列,并为每个连接从中检索一个值:

CREATE SEQUENCE 'connectionids';

然后:

SELECT next_val('connectionids');

在每个连接中,检索连接唯一ID.

原文地址:https://www.jb51.cc/delphi/101662.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐