J'ai écrit un exemple détaillé d'une implémentation de séquence sans interruption en utilisant PL/PgSQL ici .
L'idée générale est que vous voulez qu'une table stocke les valeurs de séquence et que vous utilisez SELECT ... FOR UPDATE suivi de UPDATE - ou le raccourci UPDATE ... RETURNING - pour en obtenir des valeurs tout en verrouillant la ligne jusqu'à ce que votre transaction soit validée ou annulée.