AUTO_INCREMENT 속성을 사용하면 행을 3개 삽입하고 모두 삭제해도 다음 값은 1이 아닌 4가 됩니다.
테이블이 처음 생성되는 순간부터 중간에 데이터가 삭제되더라도 멈추지 않고 계속해서 증가합니다.
AUTO_INCREMENT 값은 ALTER로 초기화할 수 있습니다.
ALTER TABLE 테이블명 AUTO_INCREMENT = 초기값
최근에 PK 값을 가져오고 등록하는 SQL 문을 만들었습니다.
ALTER TABLE post AUTO_INCREMENT = (SELECT IF(count(*) = 0, 0, max()) FROM post)
하지만 아니.. 이유가 뭐야
방금 두 개의 별도 SQL 문을 실행했습니다. 마이바티스에서는 DDL이 안 되는 것 같았는데 업데이트로 설정하고 실행하면 됩니다!
<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>
