예제가 포함된 MySQL AUTO_INCREMENT

자동 증가란 무엇입니까?

자동 증가(Auto Increment)는 숫자 데이터 유형에 대해 작동하는 기능입니다. 자동 증가로 정의된 필드에 대한 테이블에 레코드가 삽입될 때마다 자동으로 순차적 숫자 값을 생성합니다.

자동 증가는 언제 사용하나요?

데이터베이스 정규화 강의에서는 기본 키와 외래 키를 사용하여 서로 관련된 여러 개의 작은 테이블에 데이터를 저장함으로써 중복을 최소화하면서 데이터를 저장할 수 있는 방법을 살펴보았습니다.

예제가 포함된 MySQL AUTO_INCREMENT

기본 키는 데이터베이스의 행을 고유하게 식별하므로 고유해야 합니다. 그러나 기본 키가 항상 고유하다는 것을 어떻게 보장할 수 있습니까? 가능한 해결책 중 하나는 데이터를 추가하기 전에 테이블에 키가 있는지 확인하는 기본 키를 생성하는 수식을 사용하는 것입니다. 이것은 잘 작동할 수 있지만 보시다시피 접근 방식은 다음과 같습니다.plex 그리고 절대 안전하지 않습니다. 그런 컴을 방지하기 위해plex기본 키가 항상 고유하도록 하기 위해 MySQL의 자동 증가 기능을 사용하여 기본 키를 생성할 수 있습니다. 자동 증가는 INT 데이터 유형과 함께 사용됩니다. INT 데이터 유형은 부호 있는 값과 부호 없는 값을 모두 지원합니다. 부호 없는 데이터 유형에는 양수만 포함될 수 있습니다. 가장 좋은 방법은 자동 증가 기본 키에 대해 서명되지 않은 제약 조건을 정의하는 것입니다.

자동 증가 구문

이제 영화 카테고리 테이블을 생성하는 데 사용된 스크립트를 살펴보겠습니다.

CREATE TABLE `categories` (
  `category_id` int(11) AUTO_INCREMENT,
  `category_name` varchar(150) DEFAULT NULL,
  `remarks` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`category_id`)
);

Category_id 필드의 "AUTO_INCREMENT"를 확인하세요. 이렇게 하면 새 행이 테이블에 삽입될 때마다 카테고리 ID가 자동으로 생성됩니다. 테이블에 데이터를 삽입할 때 제공되지 않습니다. MySQL의 그것을 생성합니다.

기본적으로 AUTO_INCREMENT의 시작 값은 1이며 새 레코드마다 1씩 증가합니다.

카테고리 테이블의 현재 내용을 살펴보겠습니다.

SELECT * FROM `categories`;

myflixdb에 대해 MySQL 워크벤치에서 위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 Horror NULL
5 Science Fiction NULL
6 Thriller NULL
7 Action NULL
8 Romantic Comedy NULL

이제 카테고리 테이블에 새 카테고리를 삽입해 보겠습니다.

INSERT INTO  `categories` (`category_name`) VALUES ('Cartoons');

myflixdb에 대해 위 스크립트를 실행합니다. MySQL 워크벤치 우리에게 다음을 제공합니다wing 아래에 표시된 결과.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 Horror NULL
5 Science Fiction NULL
6 Thriller NULL
7 Action NULL
8 Romantic Comedy NULL
9 Cartoons NULL

카테고리 ID를 제공하지 않았습니다. 카테고리 ID가 자동 증가로 정의되어 있기 때문에 MySQL은 이를 자동으로 생성했습니다.

MySQL에서 생성된 마지막 삽입 ID를 얻으려면 LAST_INSERT_ID 함수를 사용하면 됩니다. 아래 표시된 스크립트는 생성된 마지막 ID를 가져옵니다.

SELECT LAST_INSERT_ID();

위 스크립트를 실행하면 INSERT 쿼리에 의해 생성된 마지막 자동 증분 번호가 제공됩니다. 결과는 아래와 같습니다.

MySQL AUTO_INCREMENT

요약

  • 숫자 데이터 유형의 열에 자동 증가 속성을 지정하면 데이터베이스에 새 행이 추가될 때마다 숫자가 순차적으로 생성됩니다.
  • 자동 증분은 기본 키를 생성하는 데 일반적으로 사용됩니다.
  • 자동 증분에 정의된 데이터 유형은 많은 레코드를 수용할 수 있을 만큼 커야 합니다. TINYINT를 자동 증분 필드의 데이터 유형으로 정의하면 테이블에 추가할 수 있는 레코드 수가 255개로 제한됩니다. 그 이상의 값은 TINYINT 데이터 유형에서 허용되지 않기 때문입니다.
  • 음수가 발생하지 않도록 자동 증분 기본 키에 부호 없는 제약 조건을 지정하는 것이 좋습니다.
  • 테이블에서 행이 삭제되면 해당 자동 증가 ID는 재사용되지 않습니다. MySQL은 계속해서 새로운 숫자를 순차적으로 생성합니다.
  • 기본적으로 AUTO_INCREMENT의 시작 값은 1이며 새 레코드마다 1씩 증가합니다.
  • AUTO_INCREMENT 시퀀스가 ​​다른 값으로 시작되게 하려면 AUTO_INCREMENT = 10을 사용하세요.