Background Image

FORUM

조회 수 1305 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, mybatis, jdbc


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

mybatis를 사용해서 bulk insert or update를 하나의 쿼리로 작성중에 있는데요
mysql 같은 경우 아래와 같이 values 키워드를 통해서 insert가 안되면 insert하고자 했던 내용으로 update가 가능하도록 할 수 있는 것으로 알고 있습니다.

<insert id="upsert" parameterType="map" useGeneratedKeys="false">
    INSERT
    INTO tt(
    a, b, c
    )
    VALUES
    <foreach collection="list" item="item" separator=",">
        (
        , #{item.a} as a
        , #{item.b} as b
        , #{item.c} as c
        )
    </foreach>
    ON DUPLICATE KEY UPDATE
    a = values(a),
    b = values(b)
</insert>

cubrid에서도 가능한 방법이 있을까요 ?

 

  • ?
    권호일 2021.07.14 13:14
    아래와 같이 변경해서 테스트 해 보세요.


    <insert id="upsert" parameterType="map" useGeneratedKeys="false">
    INSERT
    INTO tt(
    a, b, c
    )
    VALUES
    <foreach collection="list" item="item" separator=",">
    (
    #{item.a}
    , #{item.b}
    , #{item.c}
    )
    </foreach>
    ON DUPLICATE KEY UPDATE
    a = #{item.a},
    b = #{item.b}
    </insert>
  • ?
    dodev 2021.07.15 08:36
    일전에 테스트를 해보았었는데요, item을 파라미터로 인식하고 파라미터를 못찾는 바인딩 예외가 발생합니다.

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException
  • ?
    오명환 2021.07.15 09:49
    cubrid는 on duplicate key update 구문에 values() 를 지원하고 있지 않습니다.
    mybatis구문에서 foreach 구문에 on duplicate key update 구문까지 넣어서 변경해보세요.
    <foreach collection="list" item="item" separator=",">
    (
    , #{item.a} as a
    , #{item.b} as b
    , #{item.c} as c
    )
    ON DUPLICATE KEY UPDATE
    a = #{item.a} ,
    b = #[item.b]
    </foreach>

    그리고, cubrid 에서 replace into 구문을 지원합니다. 동작은 insert on duplicate key update와 동일하고, 사용은 insert 구문과 유사합니다.
    <insert id="upsert" parameterType="map" useGeneratedKeys="false">
    REPLACE
    INTO tt(
    a, b, c
    )
    VALUES
    <foreach collection="list" item="item" separator=",">
    (
    #{item.a}
    , #{item.b}
    , #{item.c}
    )
    </foreach>
    </insert>
  • ?
    dodev 2021.07.15 10:57
    테스트를 해보니 foreach 문 안쪽으로 ON DUPLICATION KEY UPDATE 문을 넣어서도 안되는 것 같네요. grammer 예외로 나오네요

    그리고 replace 같은 경우 update 조건이 되었을 때, 행을 제거하고 새로 삽입하기 때문에 ON DUPLICATE KEY UPDATE 문을 적극 이용해보려고 했던 상황이였는데요,
    아무래도 불가능하다면 REPLACE도 고려해봐야겠네요

  1. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4441
    read more
  2. 안녕하세요. 큐브리드 DBA권한계정을 잊어버렸을때 찾는방법이 있을까요?

    Date2021.08.10 By겸둥이k Views325
    Read More
  3. 큐브리드에서 덤프하는 방법 질문하겠습니다.

    Date2021.08.04 By겸둥이k Views1225
    Read More
  4. 큐브리드 jdbc URL 해석

    Date2021.08.03 By겸둥이k Views928
    Read More
  5. update 문 권한 관련 문의

    Date2021.07.29 Byots21 Views92
    Read More
  6. cubrid archive log가 삭제되지 않아서, 강제로 삭제할 수 있는 방안을 모색중입니다.

    Date2021.07.28 Bybikehee Views197
    Read More
  7. cubrid auto increament 동시성

    Date2021.07.21 Bydodev Views210
    Read More
  8. ALTER 로 PK 여러 개 지정하고싶습니다

    Date2021.07.21 By사탕구름 Views822
    Read More
  9. 날짜 형식 변환 질문

    Date2021.07.20 By큐브리드헬프미 Views135
    Read More
  10. 트랜잭션 격리 수준 관련한 에러 메시지

    Date2021.07.15 Bygjgj Views156
    Read More
  11. on duplicate key update values 사용 방법 질문

    Date2021.07.14 Bydodev Views1305
    Read More
  12. 큐브리드 테이블 excel 출력관련

    Date2021.07.12 Bybeee Views220
    Read More
  13. cubrid 에서 tibero로 마이그레이션을 하고 싶은데 CMT툴에서 지원이 가능한지요?

    Date2021.07.12 By덴드로비움 Views341
    Read More
  14. 질의자동화 등록 오류 관련 문의

    Date2021.07.07 Byots21 Views84
    Read More
  15. SYS_TIME 출력 시 문의사항

    Date2021.07.01 By오렌지 Views147
    Read More
  16. INSERT 문 VALUES 에 SELECT구문 문의

    Date2021.07.01 Bycubrid초보 Views493
    Read More
  17. 맥북에서 큐브리드 매니저 실행 시 Failed to create the Java Virtual Machine.에러

    Date2021.06.30 Byysh Views499
    Read More
  18. oracle_style_empty_string=yes 설정 문의

    Date2021.06.29 Bycubrid초보 Views154
    Read More
  19. 큐브리드 컬럼 길이 문의

    Date2021.06.29 By큐브리드궁금 Views186
    Read More
  20. 날짜 사이 데이터 구하기

    Date2021.06.29 Bycubrid초보 Views312
    Read More
  21. Log 문의

    Date2021.06.25 Byjungsin Views113
    Read More
Board Pagination Prev 1 ... 22 23 24 25 26 27 28 29 30 31 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales