database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29555 게시물 읽기
No. 29555
SELECT 구문으로 선택된 결과를 바로 INSERT할 때 auto_increment 값의 이상 증가에 대한 질문입니다
작성자
김승동(xenolith)
작성일
2010-02-19 13:56ⓒ
2010-02-19 14:51ⓜ
조회수
7,029

1. 다음과 같이 2개의 테이블을 생성합니다 

 

CREATE TABLE T_source (

       id     INT    UNSIGNED    NOT NULL

)

 

CREATE TABLE T_target (

      id     INT    UNSIGNED    NOT NULL   AUTO_INCREMENT,

     num   INT   UNSIGNED    NOT NULL,
      
      PRIMARY KEY (id)

) AUTO_INCREMENT = 1, ENGINE = InnoDB;

 

2. T_source 테이블에 100건이 데이터를 입력합니다

 

3. 다음의 query로 T_source의 id 필드의 값을 T_target의 num 필드에 입력합니다

 

INSERT INTO T_target (num)
SELECT id FROM T_source

 

4.  T_target의 auto_increment 값을 조회합니다

 

SHOW TABLE STATUS LIKE 'T_target'

 

모두 저와 같은 값이 나오시는지 모르겠지만 제 경우에는 auto_increment 값이 128이 나오네요

 

예상대로라면 101이 나와야 정상일텐데 당황스럽습니다

 

이렇게 auto_increment의 값이 차이가 나는 이유가 무엇일까요?

 

혹시 알고 계신다면 답변 좀 부탁드릴께요

 

그럼 남은 오늘 하루도 즐겁고 알차게 보내세요 :]

 

* 추신
 
T_source와 T_target 테이블의 구조가 동일해서 필드 지정없이 아래와 같이 복사를 하게 될 경우에는 예상대로 auto_increment 값은 101이 나옵니다
 
INSERT INTO T_target
SELECT * FROM T_source

 

이 글에 대한 댓글이 총 1건 있습니다.

600개를 insert.. select 해보시면 압니다.

insert / select 구문은 2^n 만큼 미리 추출하여 건마다

incremental number를 가져올때 발생할 수 있는 로드를 줄였습니다.

리틀푸님이 2010-02-19 18:43에 작성한 댓글입니다.
이 댓글은 2010-02-19 19:01에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29558예약시스템에서 선순위신청자 결정 [1]
양영모
2010-02-24
6770
29557mysql 에러1146 [2]
정성민
2010-02-23
13192
29556[급].frm파일 복구하는 방법 좀 알려주세요! [1]
1234
2010-02-22
11658
29555SELECT 구문으로 선택된 결과를 바로 INSERT할 때 auto_increment 값의 이상 증가에 대한 질문입니다 [1]
김승동
2010-02-19
7029
29554mysql에서 쿼리로 max_connection 수 조절하는 방법 문의 [1]
이은규
2010-02-19
7386
29553데이터 입력을 잘못하여 못 빠지는 경우 [2]
유기양
2010-02-19
6502
29552mysql 검색
이하사
2010-02-18
6977
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다