Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL AUTO_INCREMENT 초기값 설정 방법 완벽 가이드

```html

AUTO_INCREMENT란 무엇인가?

MySQL에서 AUTO_INCREMENT 속성은 새로 추가되는 행(row)에 고유한 식별자를 자동으로 생성해 주는 기능입니다. 컬럼이 'NOT NULL'로 선언되어 있다면, 해당 컬럼에 NULL을 할당하는 것만으로도 순차적인 번호가 자동으로 부여됩니다.

AUTO_INCREMENT 컬럼에 임의의 값을 직접 삽입하면 해당 값이 그대로 저장되고, 시퀀스도 함께 초기화되어 이후부터는 가장 큰 컬럼 값을 기준으로 순차적으로 증가된 값이 자동 생성됩니다.

기존 AUTO_INCREMENT 컬럼을 업데이트하면 AUTO_INCREMENT 시퀀스 역시 함께 초기화됩니다. 가장 최근에 자동 생성된 AUTO_INCREMENT 값은 SQL의 LAST_INSERT_ID() 함수 또는 C API 함수인 mysql_insert_id()를 통해 조회할 수 있습니다.

이 함수들은 연결(connection) 단위로 동작하기 때문에 반환 값은 다른 연결에서 수행하는 INSERT 작업의 영향을 받지 않습니다. 또한 AUTO_INCREMENT 컬럼에는 사용자가 필요로 하는 최대 시퀀스 값을 충분히 담을 수 있는 범위 내에서 가장 작은 정수 데이터 타입을 사용하는 것이 좋습니다.

AUTO_INCREMENT 사용 규칙

AUTO_INCREMENT 속성을 사용할 때는 반드시 아래 규칙들을 준수해야 합니다.

  • 테이블마다 AUTO_INCREMENT 컬럼은 하나만 존재할 수 있으며, 일반적으로 정수형 데이터 타입을 사용합니다.
  • AUTO_INCREMENT 컬럼은 반드시 인덱싱되어야 합니다. 즉, PRIMARY KEY 또는 UNIQUE 인덱스 중 하나여야 합니다.
  • AUTO_INCREMENT 컬럼에는 NOT NULL 제약 조건이 적용되어야 합니다.
  • AUTO_INCREMENT 속성을 컬럼에 지정하면 MySQL이 자동으로 NOT NULL 제약 조건을 추가해 줍니다.

AUTO_INCREMENT 초기값 설정 방법

1. id 컬럼이 아직 없는 경우

테이블에 id 컬럼이 아직 추가되지 않았다면 아래 문장을 사용하여 새로 추가할 수 있습니다.

ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);

2. id 컬럼이 이미 존재하는 경우

id 컬럼이 이미 테이블에 존재한다면 아래 명령어로 자동 증가 시작 값을 변경할 수 있습니다.

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

여기서 tableName은 AUTO_INCREMENT를 설정하려는 테이블의 이름을 의미하며, specificValue는 사용자가 지정하고자 하는 AUTO_INCREMENT 시작 정수 값입니다.