SQL

[SQL, JSP] 방금 INSERT 한 데이터의 PK 값을 받아오기

jane.dev 2021. 8. 22. 23:24
반응형

프로젝트를 하는 도중 추가할 기능이 생김

( 기존 영화 정보를 입력하는 Form에 영화 티저 동영상 주소를 입력하는 Form을 추가 )

1. 기존 테이블에서 컬럼을 추가하지 않고 새로 테이블을 생성해 외래키로 기존 테이블의 기본키 값과 연결

 

기존 테이블

 

새로 생성한 테이블

( 기존 테이블의 mid와 새로 생성한 테이블의 mid가 연결 )

 

2. Form에 정보를 입력하면 이를 INSERT 구문으로 기존 테이블 DB에 저장하는데, 

문제는 기존 테이블의 기본키가 AUTO_INCREMENT라서 Form에서 받아올 값이 없음

→ 새로 생성한 테이블에 mid 값을 입력할 수 없음

( 구글링으로 mybatis의 selectkey라는 기능이 내가 구현하고자 하는 로직과 비슷한 것 같은데 더 간단하게 해결하고 싶었음 )

 

그래서 생각한 해결방법

 

Form에서 정보를 입력하면 service에서 DAO 를 생성해 기존 테이블로 INSERT 구문을 실행함

그리고 직후에 아래 구문을 실행해 가장 최근에 추가한 데이터의 기본키 값을 받아옴

SELECT LAST_INSERT_ID()

받아온 기본키 값으로 새로 생성한 테이블에 INSERT 구문으로 DB에 값을 저장