어떠하호
321
2020-12-14 23:00:14
1
191

mybatis merge into 에서 selectkey사용에 관한 문제입니다.


<insert  id="uptTest" parameterType="dto" >

MERGE INTO T_COM_SFL_M A

USING (SELECT

#{no}      AS NO

, #{value}    AS VALUE

, GETDATE()     AS RG_DT

, #{rg_user}    AS RG_USER

, GETDATE()     AS MOD_DT

, #{mod_user}   AS MOD_USER

    ) B

    ON (A.NO = B.NO)

    WHEN MATCHED THEN

    UPDATE SET

    A.NO        = B.NO      

, A.VALUE     = B.VALUE   

, A.RG_DT     = B.RG_DT   

, A.RG_USER   = B.RG_USER 

, A.MOD_DT    = B.MOD_DT  

, A.MOD_USER  = B.MOD_USER

    WHEN NOT MATCHED THEN

    INSERT (NO      

,VALUE   

,RG_DT   

,RG_USER 

,ALT_DT  

,MOD_USER

    ) VALUES

    #{no}      

#{value}   

#{rg_dt}   

#{rg_user} 

#{mod_dt}  

#{mod_user}

    );

</insert>


여기서 no 가 자동증가값인데

어떻게 selectkey로 가져올 수 있을까요...?

조언좀 부탁드립니다!


감사합니다.


0
  • 답변 1

  • C#린이
    2k
    2020-12-15 09:41:29

    굳이 selectkey를 쓰실 필요는 없는거 같네요.

    insert문의 #{no} 자리에

    select isnull(max(no), 0) + 1 from T_COM_SFL_M

    을 넣어주시면 될것 같습니다.


    그리고 키값은 set 구문에 넣지 않으시는게 좋습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.