我尝试使用外部表来链接 2 个 postgresql 数据库
一切都很好,我可以检索我想要的所有数据
唯一的问题是数据包装器似乎锁定了外部服务器中的表,当我对代码进行单元测试时这很烦人
如果我不执行任何选择请求,我可以初始化数据并截断本地服务器中的表和远程服务器中的表,但是我执行一个选择语句远程服务器上的截断命令似乎处于死锁状态
你知道我怎样才能避免这个锁吗?
谢谢
[编辑]
我使用这个数据包装器来链接 2 个 postgresql 数据库:http: //interdbconnect.sourceforge.net/pgsql_fdw/pgsql_fdw-en.html
我使用 db1 的 table1 作为 db2 中的外部表
当我在 db2 中的 foreign_table1 中执行选择查询时,db1 中的 table1 有一个 AccessShareLock 查询非常简单:select * from foreign_table1
锁永远不会释放,所以当我在单元测试结束时执行截断命令时,会发生冲突,因为截断添加了 AccessExclusiveLock
我不知道如何释放第一个 AccessShareLock 但我认为它会由包装器自动完成......
希望这有帮助