delphi – 在Postgres中识别连接ID
发布时间:2020-12-15 04:22:52 所属栏目:大数据 来源:网络整理
导读:我有一个Postgres数据库(9),我正在编写触发器.我希望触发器设置修改时间和记录的用户ID.在Firebird中,您有一个可以在触发器中使用的CONNECTIONID,因此您可以在连接到数据库时向表中添加值(这是一个桌面应用程序,因此连接在应用程序的生命周期内是持久的),类
我有一个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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |