>  기사  >  데이터 베이스  >  다음은 질문 형식과 기사의 초점을 염두에 두고 몇 가지 제목 옵션입니다. **옵션 1(직접적이고 간결하게):** MySQL에서 고유하지 않은 인덱스를 생성한 후 중복을 제거하는 방법은 무엇입니까?

다음은 질문 형식과 기사의 초점을 염두에 두고 몇 가지 제목 옵션입니다. **옵션 1(직접적이고 간결하게):** MySQL에서 고유하지 않은 인덱스를 생성한 후 중복을 제거하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-25 12:37:02856검색

Here are a few title options, keeping in mind the question format and the article's focus:

**Option 1 (Direct & Concise):** 
How to Remove Duplicates After Creating a Non-Unique Index in MySQL?

**Option 2 (More Specific):**
MySQL Duplicate Rows: How to

고유 인덱스가 있는 중복 항목 제거

주어진 시나리오에서는 열의 인덱스 구성이 잘못되어 중복 항목이 테이블에 실수로 삽입되었습니다. A, B, C, D. 중복 방지 목적에도 불구하고 생성된 인덱스가 고유 인덱스가 아닌 일반 인덱스였습니다.

쿼리 실행

인 경우 기존 인덱스를 일반 인덱스에서 고유 인덱스로 변경하거나 동일한 열에 대해 새 고유 인덱스를 추가하려고 하면 중복 레코드로 인해 쿼리가 실패합니다.

IGNORE를 사용한 대체 솔루션 옵션(5.7.4 이전)

ALTER TABLE 구문에서 IGNORE 옵션을 사용하면 중복 항목을 제거할 수 있습니다.

<code class="sql">ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);</code>

이렇게 하면 중복 행이 삭제되지만 중요한 점은 문서에 보관할 행이 지정되어 있지 않다는 점입니다.

MySQL 5.7.4 이상용 솔루션

5.7.4 이상 버전의 경우 무시 ALTER TABLE에서는 더 이상 지원되지 않습니다. 그러나 다음 접근 방식을 사용할 수 있습니다.

  1. 데이터를 임시 테이블에 복사합니다.
  2. 원본 테이블을 자릅니다.
  3. 테이블에 고유 인덱스를 만듭니다. .
  4. INSERT IGNORE를 사용하여 데이터를 원래 테이블에 다시 삽입합니다.

이 프로세스는 INSERT 작업 중에 중복 항목을 제거합니다.

위 내용은 다음은 질문 형식과 기사의 초점을 염두에 두고 몇 가지 제목 옵션입니다. **옵션 1(직접적이고 간결하게):** MySQL에서 고유하지 않은 인덱스를 생성한 후 중복을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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