pg-promise 会丢弃吗?

问题描述

基于这个关于 pg-promise 的 answered question,当一个现有的连接/会话被请求 A 返回到池中并且被一个完全不同的请求 B 重新使用时。 pg-promise 会自动做 {{ 3}} 所以 B 看不到 A 留下的任何东西?如果没有,我可以使用 pg-promise 手动发布吗?

谢谢。

解决方法

pg-promise 会自动执行 DISCARD 吗?

没有

我可以使用 pg-promise 手动发布吗?

是的,但是对于单个查询,这对您没有好处,因为它们自己控制连接,因此您甚至不知道要丢弃哪个会话。

我可以看到这仅在 tasktx 方法中何时有用,但如果需要,您可以在最后轻松添加自己的 DISCARD 查询。

await db.task(async t => {

    // do your things here...

    // then run discard at the end,if needed:
    await t.none('DISCARD $1:value',['PLANS']);
});