sql >> Database >  >> RDS >> PostgreSQL

currval is nog niet gedefinieerd deze sessie, hoe krijg ik multi-sessie sequenties?

De currval retourneert de laatst gegenereerde waarde voor de reeks binnen de huidige sessie. Dus als een andere sessie een nieuwe waarde voor de reeks genereert, kun je nog steeds de laatste waarde ophalen die door JOUW sessie is gegenereerd, om fouten te voorkomen.

Maar om de laatst gegenereerde waarde voor elke sessie te krijgen, kunt u het bovenstaande gebruiken:

SELECT last_value FROM your_sequence_name;

Wees voorzichtig, als de waarde werd gebruikt door een andere sessie met een niet-gecommitteerde (of afgebroken) transactie en u deze waarde als referentie gebruikt, kunt u een foutmelding krijgen. Zelfs na het verkrijgen van deze waarde kan het al verouderd zijn. Over het algemeen hebben mensen alleen de currval . nodig of zelfs de terugkeer van setval .



  1. MySQL &MariaDB Load Balancing met ProxySQL

  2. Waarom is lang een probleem met Oracle?

  3. Groepeer rijen met een interval van 7 dagen vanaf een bepaalde datum

  4. De ACID-eigenschappen van afschriften en transacties