currval
現在のセッション内のシーケンスに対して生成された最後の値を返します。したがって、別のセッションがシーケンスの新しい値を生成する場合でも、エラーを回避して、セッションによって生成された最後の値を取得できます。
ただし、任意のセッションで最後に生成された値を取得するには、上記を使用できます。
SELECT last_value FROM your_sequence_name;
値がコミットされていない(または中止された)トランザクションで他のセッションによって使用され、この値を参照として使用すると、エラーが発生する可能性があることに注意してください。この値を取得した後でも、すでに古くなっている可能性があります。一般的に、人々はcurrval
だけが必要です またはsetval
が返されることもあります 。