PostgreSQL 在事务级别有变量吗?如果没有,是否有可能相对容易地实现类似的东西?不幸的是,我对 PostgreSQL 仍然相对缺乏经验,并且只发现您可以在会话级别定义设置。
我目前正在尝试直接在 PostgreSQL 中实现 Hibernate 的历史记录。他们不知道 Hibernate 的简短信息:Hibernate 有一个修订表。它包含一个ID、时间和其他信息。每个表都有一个“_AUD”表。同一事务中的每个更改都会获得相同的修订 ID。
要直接在 PostgreSQL 中实现这一点,我需要一个可以在事务中使用且其值只能在同一事务中使用的变量。我的想法是,每次对交易进行历史记录时,一个函数都会查询该交易的 ID 是否存在,如果不存在,则创建一个,否则返回已经创建的 ID。
我使用最新的 PostgreSQL 版本。
从今天的角度来看,这是一个愚蠢的想法或糟糕的设计,我会将此参数直接传递给数据库。