WORK/DB

mysql insert 후 String형 값 돌려받기

im 수캥이 2019. 2. 21. 11:04

mysql 에서 INT형이라면 보통 SELECT LAST_INSERT_ID() 를 사용하면 된다.

아래처럼 말이다.



<selectKey resultType="int" keyProperty="SEQ" order="AFTER">

SELECT LAST_INSERT_ID() AS SEQ

</selectKey>


INSERT INTO 어쩌구 저쩌구



=====================================================


그런데 INT 가 아닌 STRING TYPE 이라고 했을때 나는 아래처럼 사용 했다.


예를들어 부서코드가 순차적 증가라고 했을 때


DEPT_1 , DEPT_2 , DEPT_3 ....이런식으로


아래 예제를 보자


<selectKey resultType="string" keyProperty="DEPT_CD" order="AFTER" >

SELECT MAX(DEPT_CD) FROM DEPT_INFO

</selectKey>


INSERT INTO (

DEPT_CD

)VALUES(

// 여기서 숫자 구하기 (대충한거라 TEST 해보진 않음)

CONCAT('DEPT_', (IFNULL(MAX(CAST(SUBSTRING(DEPT_CD,6) AS signed integer)),'0') + 1)) 

)


이렇게 구현 했다.