PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

currval n'a pas encore été défini cette session, comment obtenir des séquences multi-session ?

La currval renverra la dernière valeur générée pour la séquence dans la session en cours. Ainsi, si une autre session génère une nouvelle valeur pour la séquence, vous pouvez toujours récupérer la dernière valeur générée par VOTRE session, en évitant les erreurs.

Mais, pour obtenir la dernière valeur générée sur toutes les sessions, vous pouvez utiliser ce qui précède :

SELECT last_value FROM your_sequence_name;

Attention, si la valeur a été utilisée par une autre session avec une transaction non validée (ou abandonnée) et que vous utilisez cette valeur comme référence, vous pouvez obtenir une erreur. Même après avoir obtenu cette valeur, il se peut qu'elle soit déjà obsolète. Généralement, les gens ont juste besoin du currval ou même le retour de setval .