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))
)
이렇게 구현 했다.
'WORK > DB' 카테고리의 다른 글
mssql merge 문장 예제 (0) | 2019.05.13 |
---|---|
MSSQL 테이블 생성 및 코멘트 추가하기 , 코멘트 조회하기 (0) | 2019.02.28 |
where 절에 case 문 비교하기 (0) | 2019.01.25 |
오라클 데이터 되돌리기 (0) | 2019.01.07 |
오라클 date 타입의 컬럼 update 하기 (0) | 2018.12.28 |