DataBase/MariaDB & MySQL
[iBatis+Spring+mariaDB] AUTO_INCREMENT의 초기화와 transaction에 관하여
희랍인 조르바
2018. 5. 3. 09:42
회사에서 iBatis를 사용하는 부분이 아직 남아있다.(대부분 MyBatis로 전환했지만.)
iBatis부분에서 <selectKey> 기능을 활용해 sequence를 만들어내고 있었다.
이 부분은 auto_increment로서 숫자가 자동으로 올라가고 있었다.
난 지금 JUnit test를 하는 중이기 때문에 클래스 부분에서 @Transactional을 적용하고 있었다.
몰랐던 사실이지만, auto_increment는 transaction이 적용되지 않는다는 것이었다.
그 뜻은 auto_increment는 rollback이 적용되지 않는다는 것.
JUnit test를 할 때 이런 경우가 있다면, 테스트를 한 번 해보고 @Ignore처리를 하면 좋을 것 같다.
auto_increment를 돌릴 수 있는 방법이 있다면, 직접 sql문으로 값을 바꿔 주는 것이다.
내 경우, 테스트를 해본 후 원래의 auto_increment 값으로 돌려줬다.
값을 변경하는 쿼리는 다음과 같다.
ALTER TABLE test_table(테이블명) auto_increment = 1;