DB/MySQL

AUTO_INCREMENT

annovation 2024. 12. 29. 10:08

AUTO_INCREMENT

AUTO_INCREMENT는 데이터베이스에서 자동으로 증가하는 고유한 숫자 값을 생성하는 기능입니다. 주로 기본 키(Primary Key) 열에 사용되며, 테이블에 새로운 레코드가 삽입될 때마다 이전 값보다 1 증가된 값이 자동으로 삽입됩니다.


예제

1. 테이블 생성 시 설정

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY, -- 자동 증가 기본 키
    name VARCHAR(100)
);
  • 위 코드에서 id 열은 자동으로 증가하며, 테이블의 각 행을 고유하게 식별합니다.

2. 데이터 삽입

INSERT INTO users (name) VALUES ('Alice'); -- id = 1
INSERT INTO users (name) VALUES ('Bob');   -- id = 2
INSERT INTO users (name) VALUES ('Charlie'); -- id = 3
  • id 값은 자동으로 1, 2, 3으로 설정됩니다.

3. 시작 값 설정

ALTER TABLE users AUTO_INCREMENT = 100; -- id가 100부터 시작
  • 이후 삽입되는 행의 id 값은 100부터 시작합니다.

4. 증가 폭 설정 (MySQL)

SET @@auto_increment_increment = 5; -- 값이 5씩 증가
  • 새로운 레코드의 id 값이 100, 105, 110과 같이 증가합니다.

주의점

1. 수동 삽입 시 충돌 가능성

  • 명시적으로 값을 삽입하면 AUTO_INCREMENT가 중복될 가능성이 있습니다.
  • ex
INSERT INTO users (id, name) VALUES (5, 'David');

 

2. 삭제된 행의 ID는 재사용되지 않음

 

  • 삭제된 레코드의 AUTO_INCREMENT 값은 재사용되지 않고, 다음 삽입 시 새로운 값이 생성됩니다.

3. 열에 NULL 삽입

  • AUTO_INCREMENT 열에 NULL 값을 삽입하면 자동으로 증가된 값이 사용됩니다.

요약

AUTO_INCREMENT는 데이터베이스에서 고유한 식별자를 자동으로 생성해 주는 강력한 도구입니다. 특히 기본 키를 생성할 때 사용하면 중복 방지와 자동화된 관리가 가능하여 데이터 무결성을 유지하는 데 매우 유용합니다.


출처

OpenAI ChatGPT (https://openai.com)

 

'DB > MySQL' 카테고리의 다른 글

JOIN  (2) 2025.01.01
SELECT문 실행 순서  (0) 2024.12.30
DBMS를 사용하는 이유 feat. MySQL  (1) 2024.12.27
SQL  (0) 2024.12.26
INDEX  (0) 2024.12.21