FORUM

조회 수 13568 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
 2008 최신버전에서

 CREATE TABLE board_good (
  bg_id integer auto_increment NOT NULL,
  bo_table varchar(40) default '' NOT NULL,
  wr_id integer default 0 NOT NULL,
  mb_id varchar(40) default '' NOT NULL,
  bg_flag varchar(510) default '' NOT NULL,
  bg_datetime timestamp default timestamp'09:00:00 AM 01/01/1970'  NOT NULL,
  PRIMARY KEY  (bg_id),
  UNIQUE (bo_table,wr_id,mb_id)
);

위와같이 테이블 작성후 첨부파일의 엑셀데이타를 삽입한 다음

insert into board_good ( bo_table, wr_id, mb_id, bg_flag, bg_datetime )
values ( 'dddiary', 7535, 'admin', 'good', '2010-02-25 16:10:54')

위와같은 삽입쿼리를 실행할시에

bo_table,wr_id,mb_id 이 세가지 값이 동시에 같은 값이 없는데도 오류(Operation would have caused one or more unique constraint violations.)가 납니다.

어떻게 해야하죠??
  • ?
    남재우 2010.02.26 06:00

    안녕하세요.
    자동증가 필드는 그 값을 자동적으로 증가시키기 위해 별도로 그 값을 관리하며, 그 값은 내부적으로 serial 개체를 만들어 관리를 합니다. 아울러 자동증가 속성을 가진 필드에 대하여 사용자가 임의의 값을 입력하는 것을 허용합니다. unique 속성이 없다면 사용자가 자동증가에 상관없이 값을 입력할 수 있도록 되어있습니다. 이때 그 값은 자동증가값이 관리되고 있는 serial 개체의 값에 반영되지 않습니다.
    즉, 사용자가 입력한 임의의 자동증가필드에 대한 값은 데이터베이스에서 관리하고 있는 자동증가값에 반영되지 않아 값이 중복될 가능성을 내포하고 있습니다.
    따라서 지금과 같이 자동증가 속성을 가지는 필드에 대하여 엑셀화일을 통하여 임의의 값을 입력하게 되면 그 값이 입력되기는 하지만, 데이터베이스에서 관리하는 자동증가값에는 반영되지 않아 insert 질의에서 입력시 자동증가 필드에 데이터베이스에서 관리하던 값이 입력되어 중복 오류가 발생하는 것입니다.
    결국 에러는 unique 와 상관없이 bg_id 가 PK 로 unique 가 보장되어야 하는데, 임의로 입력한 데이터에 1의 값이 들어가 있고 이를 알 수 없는 데이터베이스에서는 자동증가속성을 이용하여 1을 입력하려고 하니 unique 오류가 발생한 것입니다.
    이를 해결하기 위해서는 자동증가속성의 현재값을 사용자가 입력한 최대값으로 변경후 사용해야 합니다.
    select  max(bg_id) from board_good 와 같이 질의를 하여 bg_id 의 최대값을 얻은 후,(그 값이 20000이라고 가정하면)
    alter serial board_good_ai_bg_id start with 20000 와 같이 자동증가값이 저장되어 있는 serial 개체의 값을 변경합니다.
    serial 개체의 이름은 <테이블이름>_ai_<필드명> 으로 만들어 집니다.

    그리고 올려주신 화일에도 오류가 있습니다. 아래와 같이 2,3,4 번째 값이 unique 로 설정한 부분인데 값이 같습니다. 아마 가공하면서 중복된 것 같습니다.
    2 ddapply 1 hansolmin1004 good 2007-12-01 00:06:24
    3 ddapply 1 hansolmin1004 good 2007-12-01 15:43:23


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 10 update admin 2024.04.23 25851
579 cast 연산쿼리 성능 질문드립니다~ 2 파란시인 2010.03.22 13194
578 JVM terminated. Exit code=13 이런 코드가 나와서 cubridmanager가 실행 안됩니다. 1 검신81 2010.03.19 23358
577 cubridmanager 의 호스트 목록이 가끔 사라집니다. 1 하야로비 2010.03.19 10378
576 mysql 쿼리 변환 질문 입니다. 5 초보 2010.03.16 12604
575 오라클과 큐브리드중 어느걸 도입해야하는지 고민중입니다. 1 신의손 2010.03.16 10817
574 큐브리드 R2.1 PHP확장모듈 관련 8 차오이 2010.03.15 13298
573 저장 프로시저 작성법 1 webdoors 2010.03.14 16812
572 mysql에서는 빠른데 큐브리드에서 쿼리를 포문으로 돌려 여러번 실행시 너무 오래 걸립니다. 5 초보 2010.03.13 13295
571 큐브리드 모델링 툴 1 webdoors 2010.03.13 12654
570 CUBRID PHP Extension 이용시 에러 해결 방법?? 3 요한 2010.03.11 13267
569 BIT형 데이터에 대한 where ... IN 쿼리 1 소라게 2010.03.10 11271
568 portable용 cubrid 제작이 가능할까요? 4 letsgolee 2010.03.10 10563
567 두 쿼리의 결과값을 빼려고 합니다. 2 지니보이 2010.03.09 16326
566 큐브리드 설치후, 실행오류 발생 2 챔프 2010.03.08 11647
565 단일 서버에서 복제구현이 가능한지? 3 핸프맨 2010.03.06 10452
564 IIS + PHP5 까지는 연동했습니다. 2 】赤【 2010.03.06 12297
563 뷰 테이블 편집 cascade 오류 1 초보 2010.03.06 11342
562 저장함수에 대하여 1 보리빵 2010.03.04 10196
561 시리얼 업데이트 오류 2 file 초보 2010.03.04 10175
560 큐브리드 데이타베이스 정지후 다시 데이타베이스 시작이 안됩니다. 1 file 초보 2010.03.03 10597
Board Pagination Prev 1 ... 176 177 178 179 180 181 182 183 184 185 ... 209 Next
/ 209

Contact Cubrid

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

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5