본문 바로가기

Dev-/Spring

mybatis selectKey 사용시 주의점(MAX() 사용 관련)

아래와 같이 사용해야 한다. (아래는 MySQL, 다른 DBMS는 찾아서 보시면 됩니다.)

<selectKey resultType="string" keyProperty="seq" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>



아래와 같이 사용하면 데이터가 꼬일 수 있다.

<selectKey resultType="String" keyProperty="seq" order="AFTER">
SELECT MAX(seq) FROM CS_ORDER
</selectKey>


결론:

각 DBMS의 가장 최근 pk값을 가져오는 함수를 써야 한다.


참고: 

https://stackoverflow.com/questions/3180510/last-insert-id-vs-select-maxid