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

MySQL에서 초기 값과 자동 증가를 설정하는 방법은 무엇입니까?


AUTO_INCREMENT 속성은 새 행에 대한 고유 ID를 생성하는 데 사용됩니다. 컬럼이 '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 속성을 사용하는 동안 다음 규칙을 따라야 합니다 -

  • 모든 테이블에는 데이터 유형이 일반적으로 정수인 AUTO_INCREMENT 열이 하나만 있습니다.

  • AUTO_INCREMENT 열을 인덱싱해야 합니다. 이는 aPRIMARY KEY 또는 UNIQUE 인덱스가 될 수 있음을 의미합니다.

  • AUTO_INCREMENT 열에는 NOT NULL 제약 조건이 있어야 합니다.

  • AUTO_INCREMENT 속성이 컬럼으로 설정되면 MySQL은 자동으로 컬럼에 NOT NULL 제약 조건을 추가합니다.

id 열이 테이블에 추가되지 않은 경우 아래 명령문을 사용할 수 있습니다. -

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

id 열이 이미 있는 경우 아래 명령을 사용할 수 있습니다. -

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

여기서 tableName은 'AUTO_INCREMENT' 컬럼이 설정되어야 하는 테이블 fr의 이름을 의미한다. 'specificValue'는 시작하기 위해 사용자가 지정한 'AUTO_INCREMENT' 값이 있는 정수를 나타냅니다.