본문 바로가기

Tip

[mysql] pk key 값을 다른테이블에 넣기

마스터 - 디테일 구조의 테이블에서 마스터의 pk를 디테일의 외래키로 사용할 때 필요

 

########### mysql or mariadb 의 경우

Insert를 할때는 아래와 같이 Mapper에 코딩할 것이다

# useGeneratedKeys 를 true로 넣어줘야 함.

<Insert id="insertData" useGeneratedKeys="true" keyProperty="id">

/* query */

 

</insert>

 

실행을 정상적으로 완료하면 Insert 된 행의 ID값을 가지는데 이 ID값은 DataClass에 선언되어있는(Map 형태일 경우 key 값이 ID) 필드에 저절로 들어가고 Java단에서 호출이 가능해진다.

 

 

########### ORACLE의 경우

오라클은 AUTO_INCREMENT 가 없고 Sequence에서 값을 가져와서 Insert를 해줘야 하기 때문에 아래와 같이 한다.

<Insert id="insertData">

<selectKey keyProperty="id" resultClass="int">

SELECT SEQ_ID.nextval From DUAL

</selectKey>

 

/* query */

insert into test(id, msg)

values(#{id}, #{msg})

</insert>

 

감사합니다.

출처 : lemontia.tistory.com/405