집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 INSERT ... ON DUPLICATE KEY UPDATE는 Upsert 작업을 어떻게 처리합니까?
MySQL의 효율적인 Upsert 작업: INSERT ... ON DUPLICATE KEY UPDATE 사용
MySQL 데이터베이스 관리에서는 데이터 존재 여부에 따라 새 행을 삽입하거나 기존 행을 업데이트해야 하는 경우가 많습니다. 이를 "Upsert" 작업(삽입 또는 업데이트)이라고 합니다.
MySQL은 Upsert 기능을 효율적으로 구현하기 위해 INSERT ... ON DUPLICATE KEY UPDATE
구문을 제공합니다. 작동 방식은 다음과 같습니다.
<code class="language-sql">INSERT INTO `table_name` (`column1`, `column2`, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE `column1` = value1_updated, `column2` = value2_updated, ...</code>
INSERT
절은 테이블에 삽입할 값을 지정합니다. ON DUPLICATE KEY UPDATE
절은 동일한 기본 키(또는 고유 인덱스)를 가진 행이 테이블에 이미 존재할 때 수행할 작업을 정의합니다.
예를 들어 다음 표를 살펴보세요.
<code class="language-sql">CREATE TABLE `usage` ( `thing_id` INT NOT NULL PRIMARY KEY, `times_used` INT DEFAULT 0, `first_time_used` TIMESTAMP );</code>
4815162342의 thing_id
행에 새 데이터를 삽입하려면 times_used
열을 1씩 늘리고 first_time_used
을 현재 타임스탬프로 설정하려면 다음 Upsert 쿼리를 사용할 수 있습니다.
<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>
4815162342에 대한 thing_id
행이 이미 존재하는 경우 쿼리는 times_used
열을 업데이트하고 first_time_used
은 변경되지 않은 상태로 유지합니다. 그렇지 않으면 새 행이 삽입됩니다.
INSERT ... ON DUPLICATE KEY UPDATE
은 MySQL에서 Upsert 작업을 수행하기 위한 유연하고 효율적인 기술입니다. 단일 쿼리를 사용하여 삽입 및 업데이트 작업을 수행할 수 있으므로 코드가 단순화되고 성능이 향상됩니다.
위 내용은 MySQL의 INSERT ... ON DUPLICATE KEY UPDATE는 Upsert 작업을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!