내 데이터베이스의 데이터에는 수십만 개의 항목만 있습니다. 기본 키는 int 11입니다. 그러면 이전에 삽입할 수 있었지만 이제 이 오류가 발생합니다. 답변해 주세요.
먼저 몇 가지 개념을 명확히 해보겠습니다
int(11)과 int(3)에 저장된 값의 최종 크기는 동일합니다. 3과 11은 단말기에 표시되는 숫자의 길이이며, 크기와 길이와는 아무런 관련이 없습니다. 저장된 번호
110,000개의 데이터에서 기본 키는 단계 크기에 1을 더한 값이 아니어야 합니다. 그렇지 않으면 ID가 0부터 시작하지 않을 수 있습니다.
위 분이 기본키 값이 중복된다고 이유를 명확하게 설명해주셨네요. 그럼 데이터베이스에 가서 이 레코드를 먼저 찾아보시고, 10만 개가 넘는 데이터를 보시면 기본키가 왜 4294967295
2의 32제곱 = 4294967296(부호 없음), 부호 있는 다음 2로 나누면 양수보다 음수가 하나 더 있습니다. -2147483648~+2147483647 int 유형 unsigned 4294967296 최대값
이것은 중복 키입니다. 작동이 보장되지는 않습니다... 1단계: your_table_name에서 max(yourprimary_key_field)를 선택합니다. 2단계: ALTER TABLE your_table_name AUTO_INCREMENT = value_u_got_from_step1 + 1;
id 자동 증가량이 상한에 도달했습니다. 데이터를 다시 삽입하면 이 id 값만 삽입할 수 있으므로 bigint 유형으로 변경하면 수십만 개의 데이터가 자동 증가됩니다. 이 값을 확인해야 합니다. 규칙과 비즈니스 논리를 확인해야 합니다. 그렇지 않으면 속도에 맞춰 한도에 매우 빠르게 도달하게 됩니다.
먼저 몇 가지 개념을 명확히 해보겠습니다
int(11)과 int(3)에 저장된 값의 최종 크기는 동일합니다. 3과 11은 단말기에 표시되는 숫자의 길이이며, 크기와 길이와는 아무런 관련이 없습니다. 저장된 번호
110,000개의 데이터에서 기본 키는 단계 크기에 1을 더한 값이 아니어야 합니다. 그렇지 않으면 ID가 0부터 시작하지 않을 수 있습니다.
위 분이 기본키 값이 중복된다고 이유를 명확하게 설명해주셨네요. 그럼 데이터베이스에 가서 이 레코드를 먼저 찾아보시고, 10만 개가 넘는 데이터를 보시면 기본키가 왜 4294967295
2의 32제곱 = 4294967296(부호 없음), 부호 있는 다음 2로 나누면 양수보다 음수가 하나 더 있습니다. -2147483648~+2147483647 int 유형 unsigned 4294967296 최대값
이것은 중복 키입니다. 작동이 보장되지는 않습니다...
1단계: your_table_name에서 max(yourprimary_key_field)를 선택합니다.
2단계: ALTER TABLE your_table_name AUTO_INCREMENT = value_u_got_from_step1 + 1;
id 자동 증가량이 상한에 도달했습니다. 데이터를 다시 삽입하면 이 id 값만 삽입할 수 있으므로 bigint 유형으로 변경하면 수십만 개의 데이터가 자동 증가됩니다. 이 값을 확인해야 합니다. 규칙과 비즈니스 논리를 확인해야 합니다. 그렇지 않으면 속도에 맞춰 한도에 매우 빠르게 도달하게 됩니다.