sql >> Databasteknik >  >> RDS >> PostgreSQL

currval har ännu inte definierats denna session, hur får man flersessionssekvenser?

currval returnerar det senast genererade värdet för sekvensen inom den aktuella sessionen. Så om en annan session genererar ett nytt värde för sekvensen kan du fortfarande hämta det senaste värdet som genererades av DIN session och undvika fel.

Men för att få det senast genererade värdet på alla sessioner kan du använda ovanstående:

SELECT last_value FROM your_sequence_name;

Var försiktig, om värdet användes av en annan session med en ej genomförd (eller avbruten) transaktion och du använder detta värde som referens kan du få ett felmeddelande. Även efter att ha fått detta värde kan det redan vara inaktuellt. I allmänhet behöver människor bara currval eller till och med returen av setval .



  1. sökordsfel saknas i oracle CASE WHEN sql-satsen

  2. php artisan migreringsfel:nodnamn eller servnamn tillhandahålls eller vet inte

  3. Förvirrad över Itzik Ben-Gans logiska frågebehandlingsordning i hans SQL Server 2005-bok och SQL Server 2008-bok

  4. Hur ADD_MONTHS() fungerar i MariaDB