>데이터 베이스 >MySQL 튜토리얼 >MySQL의 ON DUPLICATE KEY UPDATE는 여러 행의 동시 삽입 및 업데이트를 어떻게 처리할 수 있습니까?

MySQL의 ON DUPLICATE KEY UPDATE는 여러 행의 동시 삽입 및 업데이트를 어떻게 처리할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-11 07:02:41952검색

How Can MySQL's ON DUPLICATE KEY UPDATE Handle Simultaneous Inserts and Updates of Multiple Rows?

MySQL의 ON DUPLICATE KEY UPDATE: 동시 다중 행 삽입 및 업데이트를 효율적으로 처리

MySQL 테이블에 여러 행을 삽입할 때 기존 레코드를 업데이트하기 전에 고유 키(기본 키와 구별됨)가 있는지 확인해야 하는 상황이 발생합니다. ON DUPLICATE KEY UPDATE 절은 우아한 솔루션을 제공합니다.

MySQL 8.0.19 이상 버전에서는 삽입된 행에 별칭을 사용하여 향상된 구문을 제공합니다. 이를 통해 더욱 깔끔하고 읽기 쉬운 업데이트가 가능해졌습니다.

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
    AS new
ON DUPLICATE KEY UPDATE
    age = new.age
    ...</code>

8.0.19 이전의 MySQL 버전(VALUES 메소드는 8.0.20부터 더 이상 사용되지 않음)의 경우 다음 접근 방식이 필요했습니다.

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age),
     ...</code>

두 예 모두 삽입 중에 고유 키 충돌이 발생하면 영향을 받은 행이 제공된 값으로 업데이트됩니다. 그렇지 않으면 새 행이 추가됩니다.

VALUES 내의 ON DUPLICATE KEY UPDATE은 기존 행의 값을 참조하는 것이 아니라 시도한 새 행 삽입의 해당 열 값을 참조한다는 점을 기억하는 것이 중요합니다.

위 내용은 MySQL의 ON DUPLICATE KEY UPDATE는 여러 행의 동시 삽입 및 업데이트를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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