중복 데이터베이스 항목을 방지하기 위한 최적의 접근 방식 결정
데이터베이스에 데이터를 삽입하려면 중복 항목을 방지하기 위한 조치가 필요한 경우가 많습니다. 테이블에 id(기본 키), pageId(외부 키) 및 name이라는 세 개의 열이 포함되어 있는 시나리오를 생각해 보세요. PHP 스크립트는 5000개의 레코드를 테이블에 삽입하려고 시도하지만 약 절반이 중복되어 동일한 pageId 및 이름 값을 공유합니다. 이 문서의 목표는 스크립트 실행 중에 이러한 중복 항목이 저장되지 않도록 하는 효과적인 방법을 탐색하는 것입니다.
첫 번째 권장 단계는 다음 명령을 사용하여 테이블에 고유 키를 설정하는 것입니다.
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
이 작업을 수행하면 페이지 ID와 이름의 각 조합이 테이블 내에서 고유하도록 보장됩니다. 그러나 중복 데이터가 발견되면 어떤 일이 발생하는지 지정하지 않습니다.
중복 항목을 처리하는 몇 가지 옵션이 있습니다.
중복 항목 무시:
INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
이 방법은 단순히 중복 삽입을 무시하고
기존 레코드 덮어쓰기:
INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "first") ON DUPLICATE KEY UPDATE (somefield = 'first') INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "second") ON DUPLICATE KEY UPDATE (somefield = 'second')
이 접근 방식을 사용하면 첫 번째 중복이 원본 레코드를 덮어쓰고 후속 중복이 가장 최근의
카운터 업데이트:
INSERT INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo") ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)
이 방법은 각 중복 항목에 대해 카운터 필드를 증가시킵니다. 이는 특정 레코드가 중복된 횟수를 추적하는 데 유용할 수 있습니다.
이러한 옵션과 원하는 동작을 신중하게 고려함으로써 개발자는 중복된 데이터베이스 항목을 효과적으로 방지하여 데이터의 무결성과 일관성.
위 내용은 데이터베이스에 데이터를 삽입할 때 중복 항목을 효율적으로 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!