-1

2 つのクライアントが、一意のシーケンス列を持つテーブルに同時にunique_violation挿入した場合、1 つのクライアントが ? を取得できますか? つまり、両方のクライアントが を呼び出して同じ結果を得ることができるnextval()でしょうか?

グーグルで簡単に検索しましたが、何も見つかりませんでした。

4

1 に答える 1

4

シーケンスに関する PostgreSQL のドキュメントで詳しく説明されています。

同時トランザクションであっても、同じシーケンスで2 つのnextval呼び出しが同じ値を返すことはありません。つまり、同じシーケンスに対する 2 つの個別のnextval呼び出しが同じ値を返すことはありません。これにより、トランザクションがロールバックする場所に表示されるシーケンス値の「穴」など、他のいくつかの異常が発生します。これについては、ドキュメントで再度説明されています。

于 2013-02-24T05:55:48.257 に答える