programing

시퀀스 번호, 잘못된 번호

muds 2023. 7. 15. 10:40
반응형

시퀀스 번호, 잘못된 번호

스프링 부트 애플리케이션에 이 엔티티가 있습니다.

@Data @NoArgsConstructor @AllArgsConstructor @Entity 공용 클래스 사용자 {

@Id
@GeneratedValue(generator="user_id_seq")
@SequenceGenerator(name="user_id_seq",sequenceName="user_id_seq", allocationSize=1)
Long id
 ...

}

mariadb에서, 내가 시퀀스를 확인했을 때.

CREATE OR REPLACE SEQUENCE `user_id_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB

DB에서는 사용자가 5명뿐입니다.

select id from `user` u 

이 쿼리는 반환됩니다.

1002 1004 1005 2007 3001

1, 2, 3, 4, 5가 아닌 이유

캐시 1000 때문에 그런 건가요?

네, 캐시 때문에 그렇습니다.캐시의 숫자는 종료 시 또는 테이블 캐시가 종료될 때 버려집니다.

버그 보고서가 아직 없으면 버그 보고서를 만드십시오.테이블을 닫을 때 하나의 숫자를 저장하는 것은 꽤 쉬운 해결책입니다.

언급URL : https://stackoverflow.com/questions/72147897/sequence-number-incorrect-number

반응형