問題タブ [postgresql-10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
306 参照

javascript - Sequelize で 2 つの関連付けを使用してモデルのインスタンスを取得する

私は Sequelize を使用していますが、2 つの関連付けの条件を持つモデルのすべてのインスタンスを取得する方法が完全にはわかりません。個人が多くの犬を所有していて、必ずしも同じ犬小屋を使用してそれぞれの犬に搭乗する必要がない、次の設定を使用します。

犬小屋のインスタンスと所有者のインスタンスが与えられた場合、その所有者が所有し、その犬小屋に搭乗しているすべての犬を見つけるにはどうすればよいでしょうか? 明らかに、これらの条件の 1 つだけを気にする場合は、 を実行できますがowner.getDogs()、それを一般化する方法がわかりません。

0 投票する
2 に答える
27 参照

sql - 複数の行をロックしますが、返される結果として 1 つの行のみを取得します

複数の行をロックする必要がありますが、返される結果として 1 つの行のみを取得します。where id = 2

さて、私が理解したように、2つの可能な方法があります:

1) 2 つの異なるクエリを実行します。

2)CTEと「偽の」更新を使用して、次のような1つのクエリを使用します。

では、どちらの方法がより適切でしょうか? またはさらに良い方法があるかもしれませんか?

0 投票する
1 に答える
1129 参照

postgresql - CTE と FOR UPDATE を使用して複数の行をロックする

あるセッションで、「users」テーブルの複数の行をロックし、user の「status」列を取得しようとしましたWHERE id = 2

このトランザクションの実行中に、別のセッションで次のクエリを実行します。

最初のトランザクションで行WHERE id = 6がロックされるはずだと思っていましたが、そうではありませんUPDATE

私は何を誤解していますか?

PS

最初のトランザクションの場合、CTE の代わりに次を使用します。

その後、ロックは期待どおりに機能します。

0 投票する
0 に答える
314 参照

postgresql - CREATE DATABASE... がハングし、新しいベース フォルダーがファイル システムに作成されない

最近、CentOS 7 サーバーで postgres 9.1 から postgres 10 にアップグレードしました。最初からインストールし、データベースを新しいインストールに復元しました。

データベースは正常に復元され、すべてが正常に機能しているように見えますが、新しいデータベースを作成しようとすると、ほとんどの場合、キャンセルするまでハングします。

プロセスで strace を実行したところ、新しいフォルダーがファイル システム上に作成されていないようで、無限のタイムアウト エラーが発生しました。

簡単なデータベース作成コマンド:

とトレース:

フォルダーのアクセス許可はすべて正しく、まれに、正常に機能し、新しいデータベースを作成できます。

postgres サーバーを再起動すると、データベースを正常に作成できるように見えますが、しばらくすると問題が再発します。

私はここで途方に暮れています。ファイルシステムが忙しすぎて時間内にフォルダーを作成できないことに関係しているのか、それともフォルダーの作成を妨げる何かが WAL で起こっているのか疑問に思っています。データベース サーバーは、複数のデータベースにサービスを提供するときに非常にビジーです。タイムアウトや長時間の待機状態の問題はありません。データベースを作成するだけで問題が発生します。

何か案は?