MySQL 자동 증가와 주의점
AUTO_INCREMENT
: 테이블 생성 시 위 속성을 부여하면 데이터가 INSERT 될 때 마다 값이 1씩 증가됨
: 초기 값을 1로 설정하면 1부터 증가
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
SELECT * FROM animals;
- MyISAM (파일 스토리지 기반 스토리지 엔진)
: 디스크에 갱신
: 서버를 재시작해도 기존 AUTO_INCREMENT 값이 유지됨
- InnoDB (메모리 기반 스토리지 엔진)
: 메모리에 갱신
: 서버를 재시작하면 AUTO_INCREMENT 값이 1로 초기화 됨
Reference
[MySQL] AUTO_INCREMENT 자동증가 값 가져오기
AUTO_INCREMENT는 데이터를 INSERT 할 때마다 값을 1씩 증가시켜 줍니다. 보통 테이블을 생성 할 때, primary key 중복을 막기 위해 AUTO_INCREMENT 설정해놓습니다. 오라클의 경우, nextval 함수를 이용하여 시퀀
yun5o.tistory.com
MySQL :: MySQL 8.0 Reference Manual :: 3.6.9 Using AUTO_INCREMENT
3.6.9 Using AUTO_INCREMENT The AUTO_INCREMENT attribute can be used to generate a unique identity for new rows: CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO animals (name) VALUES ('do
dev.mysql.com