外部テーブルを使用して2つのpostgresqlデータベースをリンクしようとしています
すべて問題なく、必要なすべてのデータを取得できます
唯一の問題は、データ ラッパーが外部サーバーのテーブルをロックしているように見え、コードを単体テストするときに非常に煩わしいことです
選択要求を行わない場合、データを初期化し、ローカル サーバーのテーブルとリモート サーバーのテーブルの両方を切り捨てることができますが、1 つの選択ステートメントを実行すると、リモート サーバーの切り捨てコマンドがデッドロック状態になるようです
このロックを回避する方法を知っていますか?
ありがとう
[編集]
このデータ ラッパーを使用して、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 を解放する方法はわかりませんが、ラッパーによって自動的に行われると思います...
この助けを願っています