MySQL에서 AUTO_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 속성을 사용하는 동안 다음 규칙을 따라야 합니다 -
-
모든 테이블에는 데이터 유형이 일반적으로 정수인 AUTO_INCREMENT 열이 하나만 있습니다.
-
AUTO_INCREMENT 열을 인덱싱해야 합니다. 이는 PRIMARY KEY 또는 UNIQUE 인덱스가 될 수 있음을 의미합니다.
-
AUTO_INCREMENT 열에는 NOT NULL 제약 조건이 있어야 합니다.
-
AUTO_INCREMENT 속성이 컬럼으로 설정되면 MySQL은 자동으로 컬럼에 NOT NULL 제약 조건을 추가합니다.