하나의 문에서 시퀀스에서 여러 NEXTVAL 쿼리
기본적으로, 저는 시퀀스에서 천 개의 NEXTVAL에 대해 문의해야 합니다.루프에서 쿼리할 수도 있고, 매우 큰 테이블을 가진 조인을 통해 쿼리할 수도 있습니다.
이보다 덜 촌스러운 방법은 없습니까?
업데이트. 기본적으로, 저는 물체에 대한 작업 일정이 있습니다.각 개체에는 생성된 UUID 또는 데이터베이스의 ID가 있습니다.최적의 일정을 계산한 후 DB에 작성해야 하지만 표의 모든 ID는 시퀀스에서 작성해야 합니다.그래서 저는 그 순서에서 몇 가지 ID를 조회해야 합니다.문제는 루프 쿼리가 느리다는 것입니다. DB가 저와 거리가 멀기 때문입니다. 또한 루프에서 수십 개의 쿼리를 실행하는 동안 몇 초만 느슨하게 할 수는 없습니다.그래서 저는 한 번의 쿼리로 모든 새로운 ID를 쿼리해야 합니다.
다음을 사용할 수 있습니다.
select your_sequence.nextval
from (
select level
from dual
connect by level < 1000
);
당신이 그들과 무엇을 하고 싶은지에 달려있습니다.
테이블에 삽입하는 경우 삽입 쿼리에서 seq.nexval을 해제할 수 있습니다. (여기서 설명하는 바와 같이)시퀀스 값을 사용하여 오라클에 여러 행을 삽입하려면 어떻게 해야 합니까?
루프에서 사용하면 해당 루프에서 가져올 수 있습니다.
당신은 그들과 무엇을 하고 싶습니까?
시퀀스에서 여러 값을 가져올 수 없는 것으로 알고 있습니다.
업데이트: a_horse_with_no_name의 답변은 다음과 같이 개선할 수 있습니다.
select your_sequence.nextval
from dual
connect by level < 1000
:)
내 (H2) 장치 테스트 데이터베이스가 "연결 기준"을 지원하지 않아서 다른 방법을 생각해 내야 했습니다.
with temp_id_table (lvl) as
(select 1 as lvl from dual
union all
select lvl+1
from temp_id_table
where lvl < 1000)
select sequence_name.nextval
from temp_id_table;
select sequence_name.nextval
from dual
connect by level < number of values you want to print;
언급URL : https://stackoverflow.com/questions/8292199/query-several-nextval-from-sequence-in-one-statement
'programing' 카테고리의 다른 글
C#을 사용하여 MongoDB 고유 키 만들기 (0) | 2023.06.29 |
---|---|
오라클 SQL 개발자에서 "읽기 호출에서 하나를 뺀 값"을 어떻게 해결할 수 있습니까? (0) | 2023.06.29 |
단일 글로벌 시퀀스와 테이블당 시퀀스 중 어느 것이 더 나은가요? (0) | 2023.06.29 |
Excel 스프레드시트에서 마지막 행 찾기 (0) | 2023.06.29 |
Spring boot app 오류 로그에 oracle.ons에서 FanManager에서 ONS 구성 시도가 실패했다고 표시됩니다.사용 가능한 서버 없음 (0) | 2023.06.29 |