>  기사  >  데이터 베이스  >  'PRIMARY' 키에 대한 중복 항목 - MySQL 오류 해결 방법: 기본 키의 중복 레코드

'PRIMARY' 키에 대한 중복 항목 - MySQL 오류 해결 방법: 기본 키의 중복 레코드

PHPz
PHPz원래의
2023-10-05 14:49:076033검색

Duplicate entry for key 'PRIMARY' - 如何解决MySQL报错:主键重复记录

MySQL 오류 해결 방법: 기본 키 레코드가 중복되었습니다. 특정 코드 예제가 필요합니다.

MySQL 데이터베이스를 사용할 때 기본 키 레코드가 중복되는 문제에 자주 직면합니다. 데이터베이스에 새로운 데이터를 삽입할 때 해당 데이터의 기본 키 값이 기존 레코드의 기본 키 값과 동일하면 기본 키 레코드 중복 오류가 발생합니다. 이 오류에 대한 프롬프트는 일반적으로 "'PRIMARY' 키에 대한 중복 항목"입니다.

그렇다면 이 문제를 어떻게 해결할 수 있을까요? 이 문서에서는 여러 가지 솔루션을 제공하고 구체적인 코드 예제를 제공합니다.

  1. ON DUPLICATE KEY UPDATE 문 사용
    ON DUPLICATE KEY UPDATE 문은 중복 기본 키 레코드를 처리하기 위해 MySQL에서 제공하는 메커니즘입니다. 데이터를 삽입할 때 기본 키 중복 레코드 오류가 발생하는 경우 이 문을 사용하여 기존 레코드를 업데이트할 수 있습니다.

샘플 코드:

INSERT INTO table_name (id, name, age) VALUES (1, 'John', 30) 
ON DUPLICATE KEY UPDATE name = 'John', age = 30;

위의 예에서는 table_name이라는 테이블에 데이터 조각을 삽입합니다. 데이터의 기본 키 ID가 이미 존재하는 경우 UPDATE 문이 실행되어 값을 업데이트합니다. 해당 레코드의 이름 및 나이 필드.

  1. INSERT IGNORE 문 사용
    또 다른 해결책은 INSERT IGNORE 문을 사용하는 것입니다. 이 문이 데이터를 삽입할 때 기본 키 중복 레코드 오류가 발생하면 오류가 무시되고 삽입 작업이 중단되지 않습니다.

샘플 코드:

INSERT IGNORE INTO table_name (id, name, age) VALUES (1, 'John', 30);

위의 예에서 ID가 1인 레코드가 이미 존재하는 경우 오류는 무시되고 삽입 작업이 계속됩니다.

  1. 기본 키 값 수정
    데이터를 수동으로 삽입할 때 기본 키 중복 레코드 오류가 발생하는 경우 기본 키 값을 수정하여 중복을 방지할 수 있습니다.

샘플 코드:

SET @max_id = (SELECT MAX(id) FROM table_name);
INSERT INTO table_name (id, name, age) VALUES (@max_id + 1, 'John', 30);

위 예에서는 현재 테이블에서 id의 최대값을 쿼리하여 @max_id 변수에 저장합니다. 그런 다음 데이터를 삽입할 때 새로 삽입되는 레코드의 ID가 기존 레코드와 겹치지 않도록 id를 @max_id + 1로 설정합니다.

다른 문제가 발생하지 않도록 기본 키 값을 수정할 때는 주의해야 합니다.

요약:
기본 키 레코드 중복은 MySQL에서 흔히 발생하는 오류 중 하나입니다. 이 문제를 해결할 때 ON DUPLICATE KEY UPDATE 문을 사용하여 기존 레코드를 업데이트하거나, INSERT IGNORE 문을 사용하여 중복 레코드 오류를 무시하거나, 기본 키 값을 수정하여 중복을 방지할 수 있습니다. 상황에 맞는 솔루션을 선택하고 실제 요구 사항에 맞게 코드를 조정하세요.

이 문서에 제공된 솔루션과 코드 예제가 MySQL 오류: 기본 키 레코드 중복 문제를 해결하는 데 도움이 되기를 바랍니다.

위 내용은 'PRIMARY' 키에 대한 중복 항목 - MySQL 오류 해결 방법: 기본 키의 중복 레코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.