mysql insert where not exists 사용법

728x90

사용법을 알기 위한 삽질시간 : 10분

mysql에 같은 데이터가 여러개 들어갈 수 있도록 테이블을 설계했고 여러개 들어가도 상관없지만 굳이 같은 데이터가 여러개가 필요없기 때문에 하나만 insert 되도록 해야되었다.

INSERT INTO user(
            user_id, user_name
        ) select #{userId}, #{userName}
        from users
        WHERE NOT EXISTS (
            SELECT user_id, user_name FROM users
            WHERE user_id = #{userId} and user_name = #{userName}
        )

3번째 줄에 select #{userId}, #{userName} 가 insert 될 values 값이다.

 

참고

dto로 파라미터 사용시 파라미터 개수 매핑 오류 납니다.

전달된 값은 userId, userName 만 필요한데, mapper 파라미터 매핑시 위에 처럼 하면 4개의 파라미터가 넘어오길 바랍니다.

반응형