응용 프로그램에 중복된 기본 키 데이터를 삽입할 수 있습니다. 삽입하기 전에 키가 이미 존재하는지 확인하는 가장 효율적인 방법이 무엇인지 의심스럽습니다. 아니면 그냥 삽입하고 은행에서 오류를 반환한 다음 처리하도록 합니까? 어느 것이 덜 영향을 미치나요? 감사합니다
P粉3620719922024-03-29 07:32:06
가장 효율적인 방법은 ON DUPLICATE KEY UPDATE
子句的 INSERT
를 사용하여 쿼리를 사용하는 것입니다.
기본 키가 없으면 새 레코드가 삽입되고, 기본 키가 이미 있으면 기본 키 레코드의 지정된 필드만 업데이트됩니다(오류가 발생하지 않음).
예를 들어 user_id
不存在,以下代码将创建一个新用户。如果user_id
确实存在,它只会更新last_visited_date
.
이 접근 방식을 사용하면 하나의 쿼리로 새 레코드를 생성하고 기존 레코드를 업데이트할 수 있으므로 기존 기본 키를 확인할 필요가 없습니다.
참고: 기본 키가 자동 증분 인덱스인 경우 기본 키가 이미 존재하는 한 MySQL은 ON DUPLICATE UPDATE
子句视为与 INSERT
查询相同,因此下一个 ID 将增加 < code>1 작업을 수행합니다.
ON DUPLICATE KEY UPDATE
절을 사용하지 않으려는 경우 기존 기본 키에서 오류를 잡는 것이 가장 성능이 좋은 접근 방식입니다.