ON DUPLICATE KEY 자동 증가 이상
MySQL에서 테이블에 데이터를 삽입할 때 ON DUPLICATE KEY UPDATE를 사용하면 예기치 않은 동작이 발생할 수 있습니다. 자동 증가 열이 있습니다. 질문에 설명된 대로 첫 번째 삽입 시 자동 증가 값이 예상대로 증가하지만 ON DUPLICATE KEY 조건이 트리거되고 새 행이 삽입되면 자동 증가 값이 불규칙하게 나타납니다.
이 문제에 대한 답은 MySQL이 ON DUPLICATE KEY UPDATE를 처리하는 방식에 있습니다. MySQL 문서에 설명된 대로 이 작업 중에 MySQL은 새 행을 삽입하는 대신 기존 행에 대한 업데이트를 수행합니다. 자동 증가 열의 경우 INSERT 문은 업데이트가 적용되기 전에 자동 증가 값을 증가시킵니다. 그러나 UPDATE 문은 값을 증가시키지 않습니다.
간략하게 설명하면 다음과 같습니다.
결과적으로 업데이트된 행의 자동 증가 열은 예상 값을 반영하지 않습니다. 새 행이 삽입된 경우 할당되었을 것입니다. 간격이 없도록 자동 증가 열을 사용하는 것은 권장되지 않습니다. 엄격한 순차 번호 지정이 중요한 경우 원하는 증분 동작을 유지하기 위해 출력에 트리거 또는 계산된 값을 사용하여 사용자 지정 논리를 구현하는 것이 좋습니다.
위 내용은 ON DUPLICATE KEY UPDATE에서 MySQL의 자동 증가가 오작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!