> 데이터 베이스 > MySQL 튜토리얼 > ON DUPLICATE KEY UPDATE를 사용하여 MySQL 레코드를 효율적으로 삽입하거나 업데이트하려면 어떻게 해야 합니까?

ON DUPLICATE KEY UPDATE를 사용하여 MySQL 레코드를 효율적으로 삽입하거나 업데이트하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-12 22:34:13
원래의
912명이 탐색했습니다.

How Can I Efficiently Insert or Update MySQL Records Using `ON DUPLICATE KEY UPDATE`?

"중복 키 업데이트 시 삽입과 동일"을 사용하는 효율적인 MySQL 쿼리

고유 기반 레코드를 삽입하거나 업데이트하는 MySQL 쿼리를 최적화하려면 키의 경우 "중복 키 업데이트 시" 절을 활용하는 것이 중요합니다. 이 절을 사용하면 삽입 중에 중복 키가 발견될 때 수행해야 하는 작업을 지정할 수 있습니다.

고유 키가 있는 레코드를 삽입할 때 "On Duplicate Key Update" 절을 지정하여 기존 키를 업데이트할 수 있습니다. 키가 이미 존재하는 경우의 필드입니다. 이렇게 하면 모든 필드 값을 다시 명시적으로 지정할 필요가 없어 더욱 간결하고 효율적인 쿼리가 제공됩니다. 예를 들어 주어진 MySQL 쿼리를 고려해보세요.

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
로그인 후 복사

"id" 필드에 고유 인덱스가 있는 경우 다음을 사용하여 동일한 키로 기존 레코드를 업데이트할 수 있습니다.

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) 
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
로그인 후 복사

이 경우 "On Duplicate Key Update" 절은 "a"에서 "g" 필드를 insert 절의 해당 값으로 업데이트합니다. 이렇게 하면 모든 필드 값을 명시적으로 반복할 필요가 없어 쿼리가 단순화됩니다.

그러나 테이블의 기존 값이 삽입되는 값과 일치하면 업데이트 작업이 수행되지 않는다는 점에 유의할 필요가 있습니다. 이는 원하는 값이 이미 포함된 경우 필드를 업데이트할 필요가 없기 때문입니다.

삽입되거나 업데이트된 레코드의 ID를 검색하려면 "LAST_INSERT_ID()" 함수를 사용할 수 있습니다. 이 기능에 액세스하기 위한 구체적인 구문은 사용 중인 백엔드 애플리케이션에 따라 다릅니다. 예를 들어 LuaSQL에서는 "conn:getlastautoid()"를 사용하여 마지막 자동 생성 ID를 검색할 수 있습니다.

위 내용은 ON DUPLICATE KEY UPDATE를 사용하여 MySQL 레코드를 효율적으로 삽입하거나 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿