mysql의 자체증가 ID가 연속되지 않으면 어떻게 해야 하나요?

WBOY
풀어 주다: 2022-05-16 17:26:43
원래의
5854명이 탐색했습니다.

mysql에서는 "AUTO_INCREMENT"를 사용하여 불연속적인 자동 증가 ID 문제를 해결할 수 있습니다. "AUTO_INCREMENT"는 기본 키의 자동 증가를 설정하는 데 사용됩니다. 구문은 "ALTER TABLE 테이블 이름" AUTO_INCREMENT=1"입니다.

mysql의 자체증가 ID가 연속되지 않으면 어떻게 해야 하나요?

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql 자동 증가 ID가 연속적이지 않은 경우 수행할 작업

MySQL은 navicat에서 고유 필드를 설정합니다.

Index (select fields) >>> Index type (UNIQUE)

Navicat에 고유 필드가 있는 경우 테이블, 기본 키 ID는 다음과 같습니다. 시간을 추가할 때 새 데이터를 삽입할 때 고유 필드가 이미 존재합니다. 삽입에 실패했지만

이 때 ID가 +1만큼 증가했습니다. 이때 데이터를 다시 삽입하면 ID 불연속 문제가 발생합니다. .

-- 실행 후 삽입된 ID가 1로 설정되었음을 나타내지 않고 대신 삽입된 ID가 테이블의 최대 ID 값 + 1로 설정됩니다.

 ALTER TABLE `table` AUTO_INCREMENT =1;
로그인 후 복사

insert into 작업 전에 위의 sql 문을 추가하고 삽입 ID를 현재 테이블에 존재하는 ID + 1로 설정합니다.

auto_increment는 1부터 시작하여 기본 키의 자동 증가에 사용됩니다. add the first 레코드가 삭제되고 두 번째 홉 데이터가 삽입되면 기본 키 값은 1이 아닌 2입니다.

예:

create table `test`
(
`id` int(10) not null auto_increment, -- 表示自增列
`name` varchar(20) not null,
primary key(`id`)
)
로그인 후 복사

auto_increment = 1; -- 자동 증가의 시작 크기를 나타냅니다. -- 이 방법으로 ID를 자동 증가 열로 사용하여 `test` 테이블을 생성할 수 있습니다. 테스트(`name`) 값에 문 삽입 ​​('name');

-- 데이터 행을 다음과 같이 삽입할 수 있습니다: 1 'name'

확장 정보:

AUTO_INCREMENT를 사용할 때 주의해야 합니다.

1. AUTO_INCREMENT는 데이터 열입니다. 이 속성은 정수 유형 데이터 열에만 적용 가능합니다.

2. AUTO_INCREMENT 속성이 설정된 데이터 열은 양수 시퀀스여야 하므로 데이터 열을 UNSIGNED로 선언해야 시퀀스 수가 두 배가 될 수 있습니다.

3. AUTO_INCREMENT 데이터 열에는 일련 번호 중복을 방지하기 위한 고유 인덱스가 있어야 합니다(즉, 기본 키 또는 기본 키의 일부임). AUTO_INCREMENT 데이터 열에는 NOT NULL 속성이 있어야 합니다.

4. AUTO_INCREMENT 데이터 열의 최대 수는 열의 데이터 유형에 따라 다릅니다. 예를 들어 TINYINT 데이터 열의 최대 수는 127입니다. UNSIGNED를 추가하면 최대 수는 255입니다. 상한값에 도달하면 AUTO_INCREMENT가 무효화됩니다.

5. 전체 테이블을 삭제하면 MySQL AUTO_INCREMENT는 1부터 번호 매기기를 다시 시작합니다.

이것은 전체 테이블 작업을 수행할 때 MySQL(PHP와의 최상의 조합)이 실제로 이러한 최적화 작업을 수행하기 때문입니다. 먼저 데이터 테이블의 모든 데이터와 인덱스를 삭제한 다음 데이터 테이블을 다시 작성합니다.

모든 데이터 행을 삭제하고 시퀀스 번호 정보를 유지하려면 MySQL 최적화를 억제할 위치와 함께 삭제 명령을 사용할 수 있습니다(PHP와의 최상의 조합): delete from table_name where 1;

권장 학습:

mysql 비디오 튜토리얼

위 내용은 mysql의 자체증가 ID가 연속되지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿