-
[iBatis+Spring+mariaDB] AUTO_INCREMENT의 초기화와 transaction에 관하여DataBase/MariaDB & MySQL 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;
'DataBase > MariaDB & MySQL' 카테고리의 다른 글
[문자열 연결 function] MySQL의 group_concat과 oracle의 LISTAGG 사용 방법 (0) 2018.10.22 [MariaDB/MySQL]데이터 insert하면서 중복되면 update하는 기능 (0) 2018.05.05 Transaction과 MySQL의 MyISAM 엔진(JUnit 테스트 중에 깨달은 사실) (0) 2018.04.17 [MySQL] '같지 않다' 조건 연산자 (0) 2018.03.07 [mySQL] 프로시저 만들기(DECLARE, SET, IN, IF, ELSEIF 등) (0) 2018.03.05