PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

curval nie została jeszcze zdefiniowana w tej sesji, jak uzyskać sekwencje wielosesyjne?

currval zwróci ostatnią wartość wygenerowaną dla sekwencji w ramach bieżącej sesji. Więc jeśli inna sesja wygeneruje nową wartość dla sekwencji, nadal możesz pobrać ostatnią wartość wygenerowaną przez TWOJĄ sesję, unikając błędów.

Ale aby uzyskać ostatnią wygenerowaną wartość w dowolnej sesji, możesz użyć powyższego:

SELECT last_value FROM your_sequence_name;

Bądź ostrożny, jeśli wartość została użyta przez inną sesję z niezatwierdzoną (lub przerwaną) transakcją i użyjesz tej wartości jako odniesienia, możesz otrzymać błąd. Nawet po uzyskaniu tej wartości może już być nieaktualna. Ogólnie ludzie potrzebują tylko currval lub nawet powrót setval .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. flask-migrate nie może usunąć tabeli, ponieważ zależą od niej inne obiekty

  2. Zarządzaj łączeniem połączeń w aplikacji internetowej dla wielu dzierżawców za pomocą Spring, Hibernate i C3P0

  3. Obsługa wyjątku BatchUpdateException przy użyciu withBatch

  4. Określanie OID tabeli w Postgresie 9.1?

  5. błąd wieloparametrowy z datetime_select