* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
linux 64bit | |
9.2.21.0005 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
굉장히당황스럽네요.. 이런 경우는 어떻게 된건지..
Error Number: -670
Operation would have caused one or more unique constraint violations. INDEX pk(B+tree: 5|573|1070) ON CLASS ha_customer(CLASS_OID: 0|34987|3). key: 1678117(OID: 22|23436|120).[CAS INFO - 183.111.159.79:33000, 1, 27837].
INSERT INTO `ha_customer` (`cu_name`, `cu_hp`, `cu_date`, `cu_email`, `cu_etc`, `pa_cp_code`, `pa_code`, `cu_ip`, `cu_cond`, `cu_mileage`) VALUES ('테스트', '01000000000', 1483426892, NULL, NULL, '1025', '2124', '220.124.231.82', 1, 0)
오류가 한번 뜨고
다시 재시도 하니 primary key 인 cu_no 가 중복으로 들어갔습니다.
이미지 첨부하였습니다.
그런데 희안하게도 cu_no=1678118 하면 1 row만 조회가 됩니다.
그리고 cu_no=1678117 로 조회하면 cu_no가 1678118인 게 조회가 됩니다.
그리고 실제로 조회해서 웹상으로 데이터를 출력해보면
1678117로 조회하여 row를 가져왔으면 cu_no는 1678118로 표기가 되어 버립니다.
매니저로 1678117 로 변경하려고 하니
Operation would have caused one or more unique constraint violations. INDEX pk(B+tree: 5|573|1070) ON CLASS ha_customer(CLASS_OID: 0|34987|3). key: 1678117(OID: 22|23436|120).[CAS INFO - db03.jejuv.com:33000,4,11357],[SESSION-5341],[URL-jdbc:cubrid:db03.jejuv.com:33000:haeuricoupon:dba:********:].
에러가 뜨네요
정말 난감하네요..ㅡㅡ..
답변 부탁드립니다.
테이블 스키마, insert 작업시 진행되었던 사항을 자세하게 적어 주셔야 확인이 가능하겠습니다.
우선 적어주신 내용으로만 답변을 드리면 AUTO_INCREMENT 기능을 사용하여 테이블을 생성한것으로 보입니다.
AUTO_INCREMENT는 내부 객체의 값을 증가시키며 입력해주는 방법으로 insert 시 직접적으로 값을 넣어주게되면
UNIQUE 에러는 발생될 수 있습니다. 조회 관련된 부분은 발생될 수 없는 사항입니다.
해당 테이블 스키마와 DATA를 shpark@cubrid.com으로 보내주시면 확인해보겠습니다.
AUTO_INCREMENT 관련된 자세한 사항은 아래 링크를 확인해주세요.
http://www.cubrid.org/manual/ko/9.3.0/sql/schema/table.html#auto-increment