Step-by-Step

[MySQL] MyBatis에서 Auto_Increment 값 조정하기 본문

IT 기술

[MySQL] MyBatis에서 Auto_Increment 값 조정하기

희주(KHJ) 2023. 2. 22. 22:35

 

AUTO_INCREMENT 속성을 사용하게 되면, 3 rows를 INSERT 후 모두 DELETE 해도 다음 값이 1이 아니라 4가 된다

처음 테이블을 만들때 부터 중간에 데이터가 삭제되어도 브레이크 없이 계속 올라가는 특징이 있다.

 

 

 

AUTO_INCREMENT 값을 ALTER로 초기화해 줄 수 있다.

ALTER TABLE 테이블명 AUTO_INCREMENT = 초기값

 

 

 

 

최근 PK 값을 가져와서 등록해주려고 SQL문을 만들었는데,

ALTER TABLE post AUTO_INCREMENT = (SELECT IF(count(*) = 0, 0, max()) FROM post)

BUT 안된다.. 이유가 뭘까

 

 

그냥 두 가지 sql 문을 따로 실행해주었다. MyBatis에서 DDL은 안될거같았지만, Update로 해두고 실행하면 된다!

<select id="getMaxId" resultType="Integer">
	SELECT IF(count(*) = 0, 0, max(post_id)) FROM post
</select>
	
<update id="setAutoIncrement">
	ALTER TABLE post AUTO_INCREMENT = #{maxid}
</update>

 

Comments