AUTO_INCREMENT
자동으로 증가하는 COLUMN
설명
CREATE TABLE auto_test(
num INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name VARCHAR(10)
);
num COLUMN 은 AUTO_INCREMENT로 선언이 되었다. AUTO_INCREMENT COLUMN 은 꼭 UNIQUE 조건을 가지고 있어야 한다. 그리고 이 TABLE에 data를 집어넣을 때 이 num COLUMN 에는 값을 넣을 필요가 없다. 자동으로 값이 입력되기 때문이다. 따라서, num COLUMN 에는 NULL 값을 입력해도 된다. 이 TABLE에 3개의 data를 입력 해 보았다.
INSERT INTO auto_test VALUES
(NULL, 'A'),
(NULL, 'B'),
(NULL, 'C');
위와 같이 data를 입력 해 보았다.
그 결과 위와 같이 num 값은 INSERT된 순서대로 1부터 시작하여 2, 3 번호가 정해진 것을 볼 수 있다. 그렇다면 만약 num 값으로 3을 가지는 C를 삭제한 후 새로운 data를 삽입하면 어떻게 될까?
DELETE FROM auto_test WHERE name = 'C';
INSERT INTO auto_test VALUES (NULL, 'D');
위와 같은 작업을 통해 'C' name을 가지는 data를 삭제한 뒤 새로운 data를 삽입 해 보았다. 결과는 아래와 같다.
그 결과 'D' name 을 가지는 data 의 num 값은 4가 들어간 것을 알 수 있다. 즉, data를 삭제하여도 AUTO_INCREMENT 는 하던대로 계속 하게 된다.
AUTO_INCREMENT를 시작하는 번호와 증가값 또한 변경할 수 있다.
# AUTO_INCREMENT 의 입력값 변경
ALTER TABLE auto_test AUTO_INCREMENT = 27;
# 증가값 변경
SET @@auto_increment_increment = 2;
저렇게 수행을 한 후에로 입력되는 data들의 num값은 27부터 2의 증가값을 가지고 입력이 된다. @@auto_increment_increment 는 서버 변수이며, 이 값을 변경함으로써 증가값을 변경할 수 있다.
INSERT INTO auto_test (name) VALUES
('E'), ('F'), ('G');
시작하는 번호와 증가값을 변경한 뒤 위와 같은 data들을 추가로 삽입 해 보았다. 결과는 아래와 같다.
name 이 'E', 'F', 'G' 인 data 들은 27부터 2의 증가값을 가지고 num 값이 증가하는 것을 확인할 수 있다.
'Data Base > SQL' 카테고리의 다른 글
MySQL) ON DUPLICATE KEY UPDATE (0) | 2022.01.04 |
---|---|
MySQL) 샘플 데이터 테이블 생성 (0) | 2022.01.04 |
MySQL) 층간 합계 (ROLLUP) (0) | 2021.12.28 |
SQL) 문자열 다루기_2 (LOCATE/LEFT/RIGHT/LOWER/UPPER) (0) | 2021.09.10 |
SQL) 문자열 다루기_1 (LENGTH/CONCAT/SUBSTRING) (0) | 2021.09.10 |
댓글