Background Image

FORUM

조회 수 1976 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
  Linux 64bit
CUBRID Ver.
 9..x
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


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

01/04 14:34:54 ERROR [NONE] folder data insert failed.
org.springframework.dao.DuplicateKeyException:
### Error updating database.  Cause: cubrid.jdbc.driver.CUBRIDException: Operation would have caused one or more unique constraint violations.


쿼리 구문으로  merge를 사용합니다.

: MERGE INTO tablename A USING DB_ROOT ON    (     A.serviceDomain = ?     AND A.folder = ?     AND A.timeMills = ?    )


상황은 4대의 백엔드 서버에서 데이터를 입력하는데 타이밍에 따라서 거의 동시에 일어 날수도 있습니다.

5분에 한번씩 데이터를 입력는데 하루 중 10번 정도는 중복오류가 발생하여 데이터가 입력되지 않습니다.


MERGE  구문에서 중복키 오류가 발생가능한지?

MERGE 대시 UPDATE 구문을 사용해야 하는건가요?


  • ?
    김창휘 2018.01.19 16:07
    안녕하세요. 중복시 update할 수 있습니다. 아래의 URL를 참고 바랍니다.
    WHEN MATCHED THEN UPDATE 구문 참조
    https://www.cubrid.org/manual/ko/9.3.0/sql/query/merge.html
  • ?
    블루미 2018.01.19 16:47
    전체 구문은 아래와 같고요..
    MERGE INTO xxxx_xxxx_folder_xxxx A USING DB_ROOT ON ( A.serviceDomain = ? AND A.folder = ? AND A.timeMills = ? ) WHEN MATCHED THEN UPDATE SET A.messageOutBytes = A.messageOutBytes + ?, A.plus = A.plus + 1, A.createDate = ? WHEN NOT MATCHED THEN INSERT ( A.serviceDomain, .folder, A.timeMills, A.messageOutBytes, A.plus, A.createDate )VALUES ( ?, ?, ?, ?, 1, ? )

    키 중복시 업데이트를 탈텐데.. 중복키 오류가 나서요. 하루 288건 중 대략 10건 정도 발생하네요.
  • ?
    김창휘 2018.01.19 17:13
    통상적으로 중복 발생시 해당 값으로 update하는 경우입니다만, 아래의 구문에서는 +1를 하고, 해당 테이블에 대해서 다른 session 또는 다른 응용에서 입력하는 경우 중복이 발생할 수도 있을 것 같아 보입니다.

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

    Date2020.04.09 Byadmin Views4443
    read more
  2. 2783 게시글 이어서 질문입니다.

    Date2018.03.15 By초보123 Views273
    Read More
  3. MERGE INTO문 관련.

    Date2018.03.13 By고늬 Views1109
    Read More
  4. DELETE 구문시 에러

    Date2018.03.12 Byjiman9944 Views1058
    Read More
  5. 큐브리드관련 질문드립니다.

    Date2018.03.12 ByCJH3320 Views233
    Read More
  6. 큐브리드 에러 해결방법 문의드립니다

    Date2018.03.08 By오명일 Views1995
    Read More
  7. SELECT FETCH 문제

    Date2018.03.07 By초보123 Views550
    Read More
  8. 숫자 컬럼 검색 문의드립니다.

    Date2018.03.06 Bystarworld Views715
    Read More
  9. cubrid service 기동시 에러

    Date2018.02.23 By안성환 Views456
    Read More
  10. Group_concat 에 대한 질문

    Date2018.02.22 Bystaterprograming Views367
    Read More
  11. 리눅스 서버 1대에 큐브리드를 여러개 설치 방법 문의

    Date2018.02.22 Bycoolkkm Views304
    Read More
  12. 큐브리드 DB 연계관련 오류 코드 재문의 드립니다.

    Date2018.02.14 Bykik Views371
    Read More
  13. oracle에서 cubrid로 마이그레이션 문의 드립니다.

    Date2018.02.13 Byturbo_jdh Views749
    Read More
  14. 데이터 인서트 할떄 질문

    Date2018.02.05 Bygeopeople Views222
    Read More
  15. 전체백업과 아키이브 파일 복원 문의

    Date2018.01.26 Bycoolkkm Views389
    Read More
  16. 큐브리드 DB 연계관련 오류 코드 문의 드립니다.

    Date2018.01.24 Bykik Views293
    Read More
  17. MERGE 쿼리 실행시 중복 입력 오류

    Date2018.01.19 By블루미 Views1976
    Read More
  18. CUBRID 한글설정 및 언어셋 변경 질문합니다.

    Date2018.01.18 ByNICK1990 Views1508
    Read More
  19. erd로 리버스 할때 오류

    Date2018.01.17 By힝123 Views741
    Read More
  20. DB 이중화 관련 Clob 데이터는 어떻게 해야 하나요?

    Date2018.01.16 By광합성 Views520
    Read More
  21. 그룹 멤버 관리

    Date2018.01.16 Bydunkin23 Views250
    Read More
Board Pagination Prev 1 ... 56 57 58 59 60 61 62 63 64 65 ... 200 Next
/ 200

Contact Cubrid

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