>데이터 베이스 >MySQL 튜토리얼 >MySQL의 INSERT ... ON DUPLICATE KEY UPDATE가 어떻게 삽입 및 업데이트를 효율적으로 처리할 수 있습니까?

MySQL의 INSERT ... ON DUPLICATE KEY UPDATE가 어떻게 삽입 및 업데이트를 효율적으로 처리할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-21 11:57:09964검색

How Can MySQL's INSERT ... ON DUPLICATE KEY UPDATE Efficiently Handle Inserts and Updates?

MySQL의 효율적인 Upsert: INSERT ... ON 중복 키 업데이트

MySQL은 키 존재 여부에 따라 새 행을 삽입하거나 기존 행을 업데이트해야 하는 상황에 자주 직면합니다. upsert(또는 병합)로 알려진 이 결합 작업은 단일 문을 사용하여 MySQL에서 우아하게 처리됩니다.

중복 키 업데이트 시 INSERT 활용...

여러 쿼리 대신 MySQL의 INSERT ... ON DUPLICATE KEY UPDATE 문을 사용하면 이 프로세스가 간소화됩니다. 구문은 간단합니다.

<code class="language-sql">INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(`value1`, `value2`, ...)
ON DUPLICATE KEY UPDATE
`column1` = `value1`,
`column2` = `value2`,
...</code>

실용적 적용: 사용 횟수 증가

usage, thing_id, times_used 열이 있는 first_time_used 테이블을 상상해 보세요. 목표는 행이 존재하는 경우 주어진 times_used에 대해 thing_id을 늘리는 것입니다. 그렇지 않으면 새 행을 삽입하세요.

이 작업은 INSERT ... ON DUPLICATE KEY UPDATE:

을 사용하여 쉽게 수행할 수 있습니다.
<code class="language-sql">INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` + 1</code>

이 쿼리는 두 시나리오를 모두 지능적으로 처리합니다. thing_id 4815162342가 존재하면 times_used이 증가합니다. 그렇지 않으면 지정된 값으로 새 행이 추가됩니다. 이는 MySQL upsert 기능의 효율성과 간결성을 보여줍니다.

위 내용은 MySQL의 INSERT ... ON DUPLICATE KEY UPDATE가 어떻게 삽입 및 업데이트를 효율적으로 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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