WEB/Spring

[Spring Boot] h2 Database 인덱스 auto_increment 초기화

노력의천재 2020. 5. 5. 18:10

스프링 부트 공부를 하면서 h2 DB를 이용해 실습하던 도중 다음과 같은 문제를 만났습니다.

 

임의의 DB의 테이블에 인덱스 값이 1,2,3,4 인 4개의 레코드가 있다고 가정했을때, 4번 인덱스의 레코드를 삭제하면 그 다음에 레코드를 생성시 4번이 아닌 5번으로 생성되는 경우가 발생합니다.

(1,2,3,5 이런식으로...)

 

이를 해결하는 방법을 스택오버플로우에서 찾았는데 한국 블로그에는 이를 정리해둔 곳이 없는것 같아서 기록하려합니다.

 

https://stackoverflow.com/questions/10065386/resetting-autoincrement-in-h2

 

Resetting autoincrement in h2

I'm testing a controller that returns a json response but the tests fail after the first time because the h2 database does not reset the auto increment id. Using fixtures or creating objects manual...

stackoverflow.com

해결 방법은 다음과 같습니다. 

 

1. 스프링 부트 내장 WAS를 실행시킨다.

2. localhost:8080/h2-console에 접속.

3. ALTER TABLE <테이블명> ALTER COLUMN <컬럼명> RESTART WITH 1

4. 실행