Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

예제가 있는 MySQL AUTO_INCREMENT

<시간/>

ATUO_INCREMENT가 어떻게 작동하는지 이해합시다 -

AUTO_INCREMENT 속성은 새 행에 대한 고유 ID를 생성하는 데 사용됩니다. 이 문장이 어떻게 작동하는지 봅시다. 그 전에 아래 쿼리를 고려하십시오 -

쿼리

CREATE TABLE tableName (
   id MEDIUMINT NOT NULL AUTO_INCREMENT,
   name CHAR(30) NOT NULL,
   PRIMARY KEY (id)
);
INSERT INTO tableName (name) VALUES
(‘val1’),('val2'),('val3'),
('val4');

SELECT * FROM tableName;

출력

+----+---------+
| id | name    |
+----+---------+
| 1  | val1    |
| 2  | val2    |
| 3  | val3    |
| 4  | val4    |
+----+---------+

위의 쿼리에서 'AUTO_INCREMENT' 열에 값이 지정되지 않았으므로 MySQL은 'id' 열에 일련의 숫자를 자동으로 할당했습니다. 숫자 시퀀스가 ​​0부터 시작하도록 0 값을 명시적으로 할당할 수도 있습니다. 이는 'NO AUTO VALUE ON ZERO' SQL 모드가 활성화되지 않은 경우에만 수행할 수 있습니다.

  • 컬럼이 'NOT NULL'로 선언된 경우 해당 컬럼에 NULL을 할당하여 일련의 숫자를 생성할 수 있습니다.

  • AUTO_INCREMENT 컬럼에 임의의 값이 삽입되면 컬럼은 해당 값으로 설정되고 시퀀스도 재설정되어 가장 큰 컬럼 값부터 순차적으로 값을 자동으로 생성합니다.

  • 기존 'AUTO_INCREMENT' 열을 업데이트하여 'AUTO_INCREMENT' 시퀀스도 재설정할 수 있습니다.

  • 가장 최근에 자동 생성된 'AUTO_INCREMENT; SQL의 'LAST_INSERT_ID()' 함수를 사용하거나 C API 함수인 'mysql_insert_id()'를 사용하여 값을 검색할 수 있습니다.

  • 이 함수는 연결에 따라 다르므로 반환 값은 삽입 작업을 수행하는 다른 연결의 영향을 받지 않습니다.

  • 'AUTO_INCREMENT' 컬럼에 대한 가장 작은 정수 데이터 유형을 사용할 수 있으며, 이는 사용자가 요구하는 최대 시퀀스 값을 보유하기에 충분히 클 것입니다.

  • 열이 데이터 유형의 상위 범위에 도달하면 일련의 숫자를 생성하기 위해 다시 시도합니다. 그러나 이것은 실패합니다.

따라서 가능한 경우 UNSIGNED 속성을 사용하여 AUTO_INCREMENT 값 열에 더 큰 범위의 값을 허용하십시오.