Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:sekwencja MySequence.currval nie jest jeszcze zdefiniowana w tej sesji

mysequence.CURRVAL zwraca ostatnią wartość uzyskaną z mysequence sekwencji w twojej sesja, a zatem nie jest zdefiniowana, dopóki nie uzyskasz wartości za pomocą mysequence.NEXTVAL przynajmniej raz w sesji. Celem CURRVAL jest umożliwienie użycia wartości sekwencji więcej niż raz w kodzie, np.

insert into parent (parent_id, ...) values (mysequence.NEXTVAL, ...);

insert into child (parent_id, ...) values (mysequence.CURRVAL, ...);

Jeśli CURRVAL właśnie zwrócił ostatnią wartość uzyskaną z sekwencji przez dowolny sesji, wtedy byłoby to bezużyteczne w powyższym kodzie, a w rzeczywistości mogłoby prowadzić do uszkodzenia danych!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest różnica między USER() a SYS_CONTEXT('USERENV','CURRENT_USER')?

  2. Co oznacza dwukropek :robi w zapytaniu SQL?

  3. Instalowanie Oracle 11g Release 2 Enterprise Edition w systemie Windows 7 32-Bit

  4. Wielkie litery w nazwach dni i miesięcy podczas formatowania dat w Oracle

  5. Błąd logowania Sqlplus podczas używania zmiennych bash:SP2-0306:Nieprawidłowa opcja