sql >> Database teknologi >  >> RDS >> PostgreSQL

currval er endnu ikke defineret denne session, hvordan får man multi-session sekvenser?

currval returnerer den sidst genererede værdi for sekvensen inden for den aktuelle session. Så hvis en anden session genererer en ny værdi for sekvensen, kan du stadig hente den sidste værdi genereret af DIN session og undgå fejl.

Men for at få den sidst genererede værdi på enhver session, kan du bruge ovenstående:

SELECT last_value FROM your_sequence_name;

Vær forsigtig, hvis værdien blev brugt af en anden session med en ikke-forpligtet (eller afbrudt) transaktion, og du bruger denne værdi som reference, kan du få en fejl. Selv efter at have fået denne værdi kan den allerede være forældet. Generelt har folk bare brug for currval eller endda returnering af setval .



  1. Lagring af dynamiske egenskaber for objekter i SQL

  2. Virkningen af ​​query_post_execution_showplan Extended Event i SQL Server 2012

  3. Hvordan hash adgangskoder i MySQL?

  4. konverter xml-data til mysql insert/update-forespørgsel ved hjælp af php