>데이터 베이스 >MySQL 튜토리얼 >중복 항목 오류 없이 MySQL에서 행을 복제하는 방법은 무엇입니까?

중복 항목 오류 없이 MySQL에서 행을 복제하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-14 21:50:02838검색

How to Duplicate Rows in MySQL Without a Duplicate Entry Error?

MySQL에서 행 복제: 대체 솔루션

쿼리를 사용하여 동일한 MySQL 테이블 내에서 행을 복제하려고 시도하는 경우:

insert into table select * from table where primarykey=1

기존 기본 키 제약으로 인해 중복 입력 오류가 발생할 수 있습니다. 임시 테이블을 사용하여 이 문제를 피할 수 있지만 더 간단한 해결책이 있습니다.

Leonard Challis에서 영감을 받은 다음 수정된 기술을 사용합니다.

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

설명:

  1. 임시 테이블(tmptable_1)이 생성되고 복제하려는 행이 채워집니다.
  2. 임시 테이블의 기본 키 열이 NULL로 설정됩니다. 이를 통해 MySQL은 자동으로 고유한 값을 할당하여 키 중복을 방지합니다.
  3. 임시 테이블의 행이 원본 테이블에 삽입됩니다.
  4. 그런 다음 임시 테이블이 삭제됩니다.

기본 키를 NULL로 설정하면 중복 항목이 생성될 위험이 사라집니다. 또한 INSERT INTO 문 끝에 LIMIT 1을 추가하면 하나의 행만 삽입됩니다.

임시 테이블 이름에 기본 키 값을 추가하는 것은 여러 행이 삽입될 때 잠재적인 충돌을 방지하기 위한 예방 조치입니다. 동시에 복제됩니다.

위 내용은 중복 항목 오류 없이 MySQL에서 행을 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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