MySQL을 AUTO_INCREMENT 기능은 기본 키 값을 증가의 자동 시퀀스를 생성 할 수있는 가장 쉬운 방법입니다.
너무 사용하기가 매우 쉽습니다 :
create table t ( i integer auto_increment, other_field varchar(100), primary key(id) );
AUTO_INCREMENT를 사용할 때 염두에 두어야 할 몇 가지 기능.
AUTO_INCREMENT는 결코 테이블에 이미 존재한 미만의 값을 제공하지는 않습니다.
명시 적으로 더 높은 값으로 ID를 추가 할 경우, AUTO_INCREMENT에 의해 생성되는 다음 값은 하나 더 높은 값일 것입니다.
이 말은 간격이 있다는 것을 의미합니다.
이것은 어떤 이유로 필드의 가능한 최대 값이 삽입되어있는 경우, 다음과 같은 삽입이 실패 할 것을 의미합니다 :
mysql> insert into t values (2147483647); Query OK, 1 row affected (0.05 sec) mysql> insert into t values (); ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
AUTO_INCREMENT
counter를 재 설정 하는 방법
값은 테이블과 연관된 카운터에 의해 생성되고, 카운터는 증가값을 가집니다.
그 경우를 제외하고 때때로 당신은 오래된 값으로 카운터를 재설정 할 수 있습니다.
alter table t auto_increment = 0;
당신은 자신이 DELETE로 테스트 테이블을 비우는 후이 일을 찾을 경우, TRUNCATE 명령문을 다음 번 사용해보십시오.
그것은 모든 데이터를 삭제하고 자동 증가 카운터를 재설정합니다.
기록을 삭제하는 경우, AUTO_INCREMENT 는 서버 재시작으로 다시 점프할 수 있다.
InnoDB의 스토리지 엔진에서는 자동 증분 카운터는 디스크가 아닌 메모리에 저장됩니다.
이 자동 증가 카운터가 MySQL을 다시 시작할 때 열이 최대 값으로 초기화되는 것을 의미합니다.
이것은 또 다른에서 삭제 된 데이터를 보관하는 하나의 테이블을 사용하는 응용 프로그램에 문제가 될 수 있습니다. : 갑자기 ID가 반복되는 경우
테이블은 하나의 AUTO_INCREMENT
값을 가지고, 그 값은 key가 된다.
자동 증가 컬럼은 기본 키가 될 필요가 없습니다;
그것은에 어떤 종류의 인덱스가 있다는 것을 충분합니다 심지어 고유 인덱스 일 필요는 없습니다.
MyISAM과 BDB 스토리지 엔진에서는 다중 열 인덱스에 보조 컬럼과 같이 자동 증가 열을 가질 수 있으며, 다음 자동 증가는 각 그룹에 대해 1에서 시작합니다
create temporary table t ( v varchar(100), i integer(2) auto_increment, primary key(v, i) ) engine=myisam; insert into t (v) values ('a'),('a'),('b'),('b'),('b'); select * from t; +---+---+ | v | i | +---+---+ | a | 1 | | a | 2 | | b | 1 | | b | 2 | | b | 3 | +---+---+
BY LEE JI EUN
'2. DBMS이야기 > 02. MySQL' 카테고리의 다른 글
MySQL에서 Master-Master Replication 셋팅 방법① (0) | 2014.11.19 |
---|---|
[MySQL TIP] 빈 테이블 검색하기 (0) | 2014.11.18 |
Mysql에서 innodb_file_per_table을 사용하는 이유 (0) | 2014.11.07 |
MySQL InnoDB Next-Key Locking (0) | 2014.11.05 |
MySQL Fulltext Indexing and searching (0) | 2014.10.31 |