Background Image
조회 수 29733 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
데이터 값이 자동으로 증가하는 auto_increment 속성은 명시적으로 값을 입력할 수 도 있다.
이로 인해 내부에서 관리되는 현재 값과 실제 테이블에 저장되어 있는 max 값이 다른 경우가 있다.
주로 새로운 테이블에 다른 곳에서 데이터를 가져와 저장하는 경우 해당 컬럼의 값까지 유지해야 하는 경우가 이에 해당할 것이다.
이러한 경우 값을 일치 시키기 위해서는 테이블에서 해당 컬럼의 max값을 구해서 db_serial이라는 시스템 카다로그 테이블의 current_val을 변경하여야 한다.
이를 수행하는 구문은 "alter serial auto_increment_명 start with 변경값;" 과 같이 사용하여야 한다.
이러한 작업을 한 두개의 테이블에서 수행할 경우에는 문제가 없으나, 한 DB내에 여러 테이블에서 동일한 작업을 수행하려면 좀 번거로운 작업이다. 또 실수로 빠뜨리는 경우도 발생할 수 있다.
아래와 같은 절차로 수행하여 위와 같은 작업을 조금 간편화해 보았다.

아래 질의를 수행하면 auto_increment가 생성된 테이블의 alter 문을 생성하기 위한 첫 번째 단계로 select질의문이 생성된다.

select 'select ''alter serial '|| name ||' start with ''|| nvl(max('||att_name||'),1) || '';'' from '||class_name||' ;'

from db_serial where class_name is not null

질의 수행 결과 아래와 같은 구문이 생성되면 이 질의를 수행하여 max값이 설정된 alter 문을 추출한다.

select 'alter serial tn_comment_info_ai_seq start with '|| nvl(max(a),1) || ';' from tn_comment_info ;

질의 수행 결과 아래와 같은 현재 값이 설정된 alter문이 생성되며, 이 질의를 수행하여 현재 값을 변경한다.

Alter serial tn_comment_info_ai_seq start with 100;


  1. 데이터 존재하면 update, 존재하지 않으면 insert 방법(ON DUPLICATE KEY UPDATE)

    Date2010.08.11 Category질의작성 By손승일 Views38000
    Read More
  2. 예약어를 테이블명이나 컬럼명으로 사용시

    Date2008.11.21 Category질의작성 Byadmin Views37427
    Read More
  3. CUBRID DB 내의 auto_increment 값을 초기화 하자.

    Date2009.10.28 Category질의작성 By손승일 Views29733
    Read More
  4. group_concat(문자열 그룹처리) 함수 사용하기

    Date2016.06.29 Category질의작성 By권호일 Views28247
    Read More
  5. INSERT수행 시, 현재날짜,현재시각으로 자동 입력하는 방법

    Date2015.07.08 Category질의작성 By주현 Views25210
    Read More
  6. 중복데이터 제거 방법

    Date2009.07.01 Category질의작성 ByPrototype Views25068
    Read More
  7. 쿼리로 인덱스 정보 확인하기

    Date2009.12.29 Category질의작성 By시난 Views24641
    Read More
  8. 컬럼 사이즈 변경 방법

    Date2009.03.14 Category질의작성 By정만영 Views24337
    Read More
  9. 데이터 값 작은 따옴표(') 넣기

    Date2009.03.20 Category질의작성 By정만영 Views23813
    Read More
  10. 쿼리로 테이블이 존재하는지 확인하기

    Date2009.12.28 Category질의작성 By시난 Views23521
    Read More
  11. pivot() 간략하게 구현하기

    Date2009.06.24 Category질의작성 By남재우 Views23429
    Read More
  12. 임의의 컬럼을 rownum 으로 업데이트 하기

    Date2009.07.01 Category질의작성 ByPrototype Views22535
    Read More
  13. 문자 코드셋(UTF-8, EUC-KR) 사용시 CUBRID 는?

    Date2010.01.01 Category질의작성 By남재우 Views22398
    Read More
  14. 테이블 데이터 복사 하기

    Date2009.03.14 Category질의작성 By정만영 Views22301
    Read More
  15. 테이블 컬럼 변경 및 추가

    Date2016.02.29 Category질의작성 By정만영 Views21855
    Read More
  16. LIKE 검색에서 INDEX_SCAN사용 하기

    Date2009.04.17 Category질의작성 Byjanus Views21809
    Read More
  17. group by 사용 방법 및 여러 필드중 하나의 필드에 대하여만 group by 처리 방법

    Date2010.02.26 Category질의작성 By남재우 Views21712
    Read More
  18. 모든 필드에 하나 이상 중복 값 찾기

    Date2010.04.27 Category질의작성 By정만영 Views21590
    Read More
  19. MERGE INTO 사용 예제 ( INSERT, UPDATE문을 1개의 쿼리로 실행 )

    Date2015.05.01 Category질의작성 By권호일 Views21256
    Read More
  20. 오류데이타검증 - 숫자 이외의 데이타 확인하는 방법

    Date2013.01.17 Category질의작성 By권호일 Views21121
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

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