>데이터 베이스 >MySQL 튜토리얼 >증가하지 않고 Oracle 시퀀스의 현재 값을 검색하는 방법은 무엇입니까?

증가하지 않고 Oracle 시퀀스의 현재 값을 검색하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-25 11:14:08442검색

How to Retrieve the Current Value of an Oracle Sequence Without Incrementing?

증분 없이 Oracle 시퀀스 값 검색

증분하지 않고 Oracle 시퀀스의 현재 값을 얻으려면 다음 SQL 문을 사용할 수 있습니다. :

SELECT last_number
  FROM all_sequences
 WHERE sequence_owner = '<sequence owner>'
   AND sequence_name = '<sequence_name>';

이 문은 지정된 시퀀스에 의해 생성된 마지막 숫자를 검색합니다. 시퀀스 값을 수정하지 않고.

또는 다음 보기는 마지막으로 생성된 값을 포함하여 시퀀스 메타데이터를 제공할 수 있습니다.

  • user_sequences: 현재 시퀀스의 경우 사용자의 기본 스키마
  • all_sequences: 현재 사용자가 액세스할 수 있는 시퀀스
  • dba_sequences: 모든 시퀀스에 대해(적절한 권한이 있는 사용자에 대해)

예를 들어 시퀀스의 현재 값을 검색하려면 기본 스키마의 "SEQ"라는 이름:

SELECT last_number
  FROM user_sequences
 WHERE sequence_name = 'SEQ';

시퀀스의 캐시 크기는 안정성에 영향을 미칠 수 있습니다. 이 방법의. 캐시 크기가 1보다 큰 경우 시퀀스는 증가하지 않고 검색할 수 있는 여러 값을 캐시했을 수 있습니다. 이 문제를 해결하려면 다음 예와 같이 시퀀스의 증분을 음수 값으로 설정한 다음 원래 값으로 되돌릴 수 있습니다.

-- Set the sequence to decrement by the same as its original increment
ALTER SEQUENCE seq INCREMENT BY -1;

-- Retrieve the sequence value
SELECT seq.nextval FROM dual;

-- Reset the sequence to its original increment
ALTER SEQUENCE seq INCREMENT BY 1;

위 내용은 증가하지 않고 Oracle 시퀀스의 현재 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.