>  Q&A  >  본문

내 SequenceGenerator가 ID 값을 건너뛰는 이유는 무엇입니까?

다음 코드에 아티스트 ID를 설정했습니다.

으아아아

내 ArtistId가 때때로 값을 건너뛰고 순서가 맞지 않는 이유를 누군가 설명해 줄 수 있나요? 테이블에 유효하지 않은 데이터를 삽입하려고 해도(예외가 발생하는 경우) 데이터는 테이블 항목에 의해 거부되지만 내 아티스트 ID는 눈에 보이지 않게 채워집니다. 이로 인해 내 테이블은 다음과 같은 상태가 됩니다.

아티스트_ID 이름
1 마샬 매더스
3 투팍 샤쿠르

앞서 말했듯이 이미 존재하는 아티스트를 삽입하려고 하므로 ArtistId 값 2를 건너뛰고 있지만 고유해야 하도록 설정했습니다. 따라서 예외가 발생하고 데이터는 거부되지만 값이 2인 내 ID는 어떻게든 채워지거나 건너뜁니다. 이런 상황을 피하기 위해 어떻게 이 문제를 해결할 수 있습니까?

P粉919464207P粉919464207204일 전359

모든 응답(2)나는 대답할 것이다

  • P粉547420474

    P粉5474204742024-03-29 16:10:10

    Oracle 데이터베이스를 사용하고 있는 것 같습니다. 삽입하기 전에 ID가 생성되므로 삽입에 실패하면 ID가 손실됩니다. 또한 서버 클러스터를 사용하는 경우 ID 범위는 각 서버에 할당되며 연속 삽입 간에 크게 달라질 수 있습니다. 짧은 대답은 ID가 연속적이고 누락된 값이 없다고 믿을 수 없다는 것입니다. 이는 다른 데이터베이스에서도 작동할 가능성이 높습니다.

    회신하다
    0
  • P粉898049562

    P粉8980495622024-03-29 13:28:53

    이것은 거의 정상적인 동작입니다.

    시퀀스 생성기의 유일한 책임은 다양한 정수 값을 생성하는 것입니다.

    회신하다
    0
  • 취소회신하다