Pour connaître où on en est dans une séquence on peut utiliser :
Définition de la séquence :
\ds+ <nom_séquence> \d+ <nom_séquence> |
Obtenir la valeur actuelle :
select currval('<nom_séquence>'); |
Obtenir la valeur suivante :
select nextval('<nom_séquence>'); |
Obtenir la valeur précédente et si elle a été utilisée :
select last_value, is_called from <nom_séquence> ; |
Info :
Lorsque vous utilisez 'currval' our obtenir la valeur actuelle de la séquence, vous pouvez avoir le message d'erreur :
ERREUR: la valeur courante (currval) de la séquence « <nom_séquence> » n'est pas encore définie
dans cette session
si vous utiliser \set VERBOSITY verbose le message d'erreur est :
ERREUR: 55000: la valeur courante (currval) de la séquence « <nom_séquence> » n'est pas encore définie
dans cette session
EMPLACEMENT : currval_oid, sequence.c : 856
pour avoir une 'idée' utiliser la dernière requête (select last_value, is_called from <nom_séquence> ;) et la valeur sera celle donnée + le pas appelé "cache" par postgres