Background Image

FORUM

조회 수 20871 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

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

 이미 데이타가 들어가 있는 테이블에서 자동증가 컬럼을 하나 추가한뒤 조회를 해보니

 새로 추가한 자동증가 컬럼에 데이타가 NULL 이 되어 있습니다.

 추가한 자동증가 컬럼에 자동증가 숫자데이타가 들어가게 하려면 어떻게 하죠?
  • ?
    seongjoon 2010.02.27 04:00
    기존의 테이블에 auto_increament 속성을 가지는 column을 추가하게 되면, 기존의 데이터에서 추가된 column의 데이터에 NULL 값이 들어가게 됩니다.
    이러한 문제를 해결하기 위해서는 기존의 컬럼과 auto_increment 컬럼을 추가하여 새로운 테이블을 생성하시고 다시 데이터를 입력하셔야 됩니다.
    예를 들면,
    기존의 테이블 table_old가 create table table_old(col1 char); 이라면
    새로운 테이블 table_new를 create table table_new (col1 char, col2 int auto_INCREMENT); 와 같이 생성하고
    insert into table_new(col1) select col1 from table_old; 와 같은 쿼리문을 이용하여 데이터를 입력하시면 됩니다.
    그 후에, drop table table_old; 쿼리로 기존의 테이블을 삭제하시고, rename table table_new as table_old; 쿼리로 테이블의 이름을 변경하면 작업이 끝납니다.
  • ?
    남재우 2010.03.01 21:19
    안녕하세요.
    보다 간단한 방법을 알려드리겠습니다.
    자동증가는 내부적으로 serial 을 통해 관리하므로, 그 serial 값을 이용하여 update 하시면 됩니다. my_table에 i 라는 필드가 자동증가 속성을 가진다면 그 serial 은 my_table_ai_i 라는 이름을 가집니다. 그 serial 을 이용하여 업데이트 하면 됩니다.
    update my_table set i = my_table_ai_i.next_value
  • ?
    초보 2010.03.04 01:09 Files첨부 (1)
    이렇게 고쳐도 안되네요
  • ?
    seongjoon 2010.03.02 19:55
    nb_board_info_ai_i_next_value 이 아니라nb_board_info_ai_i.next_value 입니다.
    i와 next 사이에 "_" 가 아니라 "." 입니다.
  • ?
    초보 2010.03.02 18:49
    nb_board 라는 테이블에  bo_id 라는 자동증가 컬럼 이라서
    update nb_board_info set bo_id = nb_board_info_ai_i_next_value 라고 쿼리를 날리니

    오류 설명:
    시멘틱: nb_board_info_ai_i_next_value 은(는) 정의되지 않았습니다.
    라는 오류가 났습니다.

    어떻게 하죠?
  • ?
    cubebridge 2010.03.04 01:23
    먼저 올라온 덧글에 따르면 수정된 쿼리문은 아래와 같을 것 같습니다.
    update nb_board_comment set cm_id=nb_board_comment_ai_cm_id.next_value
    적색으로 표시된 부분은 자동증가가 일어나는 칼럼의 이름입니다. 첨부하신 내용에 따르면 아무런 연관이 없는 i를 넣으셨기 때문에 오류가 발생한 것입니다. 정확한 serial이름을 확인하기 위해서는 아래와 같이 수행해서 serial을 찾으시기 바랍니다.
    csql>select name from db_serial
    csql>;x
    CUBRID Manager에서도 확인이 가능합니다. 위의 결과로 나온 이름이 nb_board_comment_ai_cm_id와 일치할 것입니다. 
  • ?
    남재우 2010.03.04 08:09
    update nb_board_info set bo_id = nb_board_info_ai_bo_id.next_value
    와 같이 하시면 됩니다. 
    nb_board_info_ai_bo_id 에서 nb_board_info 는 테이블이름이며, bo_id 가 자동증가 속성을 가진 필드이름입니다. 가운데의 ai 는 자동증가인 auto increment 의 약자입니다. <테이블이름>_ai_<필드명> 이런식으로 시리얼개체가 만들어집니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143885
609 리눅스에서 큐브리드 메니저 에러 2 file 태랑 2010.04.13 13558
608 해시분할 문의 2 초보 2010.04.10 13177
607 조인 업데이트 구문 문의 1 초보 2010.04.09 17141
606 테이블 파티션 -> 일반 테이블 변경 문의 4 초보 2010.04.09 14279
605 테이블 파티션 추가 문의 1 초보 2010.04.09 13657
604 테이블 파티션 문의 4 초보 2010.04.09 13764
603 multiset 관련 질문은 CUBRID 7.3 Q&A 게시판으로 이동되었습니다. 1 admin 2010.04.09 13055
602 데이타 올리기로 데이타 삽입후 db_serial 변경 문의 1 초보 2010.04.08 13271
601 데이타베이스 로그인시 사용자 이름이 한글자 밖에 입력이 안될때 3 초보 2010.04.08 14980
600 Collection에 관해 질문 드립니다. 2 끝장인생 2010.04.06 12601
599 큐브리드 실행 3 secret 디비 2010.04.06 21
598 is null 조건 쿼리가 더 오래 걸리는 이유가 무엇인가요? 1 초보 2010.04.06 14964
597 무슨 오류인가요? 1 초보 2010.04.06 14867
596 연동하는법좀 2 ghkdldjfld 2010.04.03 15299
595 다름이아니라 PHP 모듈관련 1 ghkdldjfld 2010.04.03 13427
594 java vm is not running 1 yoon 2010.04.03 18621
593 매니저에서 테이블 여러개를 한꺼번에 삭제 하려면? 1 초보 2010.04.02 13639
592 group by 오류 1 초보 2010.03.31 13391
591 mysql 데이트 컬럼 자르기 문의 2 초보 2010.03.31 18961
590 데이트타입 컬럼의 주를 구하는 함수는? 2 초보 2010.03.31 14507
Board Pagination Prev 1 ... 178 179 180 181 182 183 184 185 186 187 ... 213 Next
/ 213

Contact Cubrid

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