테이블에 중복 행을 삽입하면 MySQL의 자동 증가 메커니즘으로 인해 예기치 않은 동작이 발생할 수 있습니다. MySQL 5.1.49에서는 INSERT IGNORE 문을 사용해도 자동 증가 ID가 계속 증가합니다. 이로 인해 ID 순서에 바람직하지 않은 공백이 발생할 수 있습니다.
이 문제를 해결하려면 다음 전략을 사용할 수 있습니다.
INSERT INTO tablename (tag) SELECT $tag FROM tablename WHERE NOT EXISTS( SELECT tag FROM tablename WHERE tag = $tag ) LIMIT 1
이 문은 먼저 태그가 테이블에 이미 존재하는지 확인합니다. 그렇지 않으면 자동 증가 메커니즘을 트리거하지 않고 행이 삽입됩니다. 하위 쿼리는 삽입이 한 번만 발생하도록 보장합니다.
이러한 솔루션은 모든 시나리오에 적합하지 않을 수 있다는 점에 유의하는 것이 중요합니다. 성능이 중요하다면 별도의 테이블을 사용하여 고유한 값을 저장하고 이를 기본 테이블에서 참조하는 등 다른 옵션을 평가해야 할 수도 있습니다.
위 내용은 MySQL에 중복 행을 삽입할 때 자동 증가 간격을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!