>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 Upsert를 효율적으로 수행하려면 어떻게 해야 합니까?

MySQL에서 Upsert를 효율적으로 수행하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-21 11:47:11481검색

How Can I Efficiently Perform Upserts in MySQL?

MySQL Upsert 작업: 존재하면 업데이트하고 존재하지 않으면 삽입

질문:

MySQL에서 "Upsert" 작업(즉, 존재하지 않는 경우 새 행을 삽입하고 존재하는 경우 기존 행을 업데이트)을 수행하는 효율적인 방법이 있습니까?

정답:

예, MySQL은 이 기능을 구현하기 위해 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>

지침:

  • INSERT INTO 절은 지정된 값을 가진 새 행을 삽입하려고 시도합니다.
  • ON DUPLICATE KEY UPDATE 절은 고유 키 충돌이 발생할 경우(즉, 동일한 thing_id 행이 이미 존재하는 경우) 어떻게 해야 하는지 정의합니다.
  • 이 예에서는 times_used 열에 1을 추가하여 기존 행을 업데이트합니다.

장점:

  • 효율성: 단일 쿼리를 통해 Upsert 작업을 수행하여 데이터베이스 왕복 횟수를 줄입니다.
  • 안전: 중복 행 충돌을 원활하게 처리하고 데이터 무결성을 보장합니다.
  • 유연함: 을 사용하여 새 행을 삽입하거나 기존 행을 업데이트하거나 둘 다를 수행할 수 있습니다.

위 내용은 MySQL에서 Upsert를 효율적으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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