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